是否有建立和下/系统/库/框架上的任何安装Python 2.7.x所以它没有直接依赖任何一种方式? (IOW,例如Python的应后也保持工作sudo chmod 000 /System/Library/Frameworks
。)
我认为这将是足以省略--enable-framework
在运行的时间标志./configure
,但我错了:如果我这样做所产生的Python仍然有大量的依赖于框架下/系统/库/框架包括,当然,/System/Library/Frameworks/Python.framework。 (IOW,人们想知道,如果有有和没有选择安装任何区别--enable-framework
。)
是的, --enable-framework
有差别构建和安装Python时。 如果没有--enable-framework
,Python是作为一个传统的“UNIX风格”通过安装在默认情况下建立建/usr/local/
,但可以与改变--prefix=
选项来./configure
。 --enable-framework
构建,默认情况下,被安装到一个Python /Library/Frameworks
,虽然这可通过指定到其他路径被改变--enable-framework
。 但是,任何Python构建将取决于由操作系统提供的其他库和框架。 这个是正常的。 为什么你不担心吗?
更新:这很容易避免使用苹果提供的系统蟒蛇,如那些在/ usr / bin和它的共享组件都在/System/Library/Frameworks/Python.frameworks,只是通过安装另一个Python 2.7和不使用/ USR /斌/ python2.7。 但是,这并不意味着你应该还是能避免使用其他的系统框架。
这就是说,存在一个公知的问题在OS X 10.6 10.8通过Apple提供框架所使用的Python:即Tk的8.5,被Python Tkinter的应用,包括IDLE使用。 幸运的是,这是很容易解决这一点。 像Python,您可以安装的Tcl 8.5和Tk 8.5框架成一个新的,第三方版本/Library/Frameworks
和一些Python发行版,如从python.org二进制安装程序,会使用它们。 我们建议ActiveTcl分配,如果你能够使用它。 见http://www.python.org/download/mac/tcltk/以获取更多信息。
此外,要知道,你需要安装单独的版本Distribute
(或setuptools
), pip
(如果使用的话),和/或virtualenv
你有Python中的每个实例。 不要落入使用的陷阱Apple提供easy_install
在命令中/usr/bin/
这是系统的蟒蛇。
进一步更新:随着国家进一步细化
避免/S/L/F/Python.framework下所有的东西。”我已经尝试过类似你的描述,但由此产生的安装仍然/S/L/F/Python.framework下依靠的东西
所有我能做的就是重申,建立你自己的Python,无论是“UNIX”建设,“共享”建设,或“框架”建设,得到的Python的应该是完全独立的东西/System/Library/Frameworks/Python.framework
。 如果不,出事了在构建或你是如何执行Python。 将需要更多的细节,以确定什么错误,至少是这样的:
/path/to/your/python -c "import sys, pprint; print(sys.version); print(sys.executable); pprint.pprint(sys.path)"
如果你建了Python,我们需要看到完整的configure
,并make
命令。 但是,这将是进入不是真的适合StackOverflow的本地化调试。
(!)最后更新:在一个框架打造, --enable-framework=/path/to
选项来configure
使用了“前缀”作为框架和两个辅助目录安装“前缀”的位置,如果你坚持使用路径为此在Library/Frameworks
。 所以,如果你使用:
./configure --enable-framework=/baz/quux/Library/Frameworks && make && make install
它应该导致:
/baz
quux
Applications
Python 2.7
Build Applet.app
IDLE.app
...
Library
Frameworks
Python
Version
2.7
Headers/
Python
...
Resources/
bin
...
2to3
idle2.7
...
python
python2
python2.7
...
include/
lib/
share/
bin
2to3 -> ...bin/2to3
...
idle2.7 -> ...bin/idle2.7
...
python -> ...bin/python
...
顶级bin目录是有点退化,真的只是混淆的问题。 它包含符号链接到这个框架中的可执行文件bin
目录。 这就是被安装在/usr/local/bin
中,默认框架的构建。 使用它的一个问题是,安装的Distutils脚本将在默认情况下,得到安装在框架bin
目录,并在顶级目录将不会有一个别名为他们。 这就是为什么我们建议你把框架bin
目录在shell的头PATH
,只是忽略了顶级bin
。
如果--prefix=/foo/bar
被添加到以前的configure
,它会使用前缀路径为根的残留顶级bin目录。 在上面的例子,该顶层bin
目录将被安装而不是在:
/foo
bar
bin
2to3 -> ...bin/2to3
...
idle2.7 -> ...bin/idle2.7
...
python -> ...bin/python
...
否则,它应该没有任何效果。
文章来源: How to install Python 2.7.x independently of /System/Library/Frameworks under OSX Lion?