在做'哪个Python'时它表示'/ usr / local / bin / python'。但是当我通过'finder'去那里时,那里什么都没有。我可以通过finder看到/ Library / Python,点击Library / Python我看到2.3,2.5,2.6,2.7。
默认的Python目前是2.7,我可以看到--version。但它只是/ site-packages。这怎么可能?我不确定它是否是操作系统附带的,或者是否稍后由某人安装。我很困惑。
OSX 10.8.4
答案 0 :(得分:3)
你发现的只是python二进制文件的符号链接,试着这样做:
ls -l /usr/local/bin/python
这将显示此simlink指向的位置。例如,我得到(见行尾):
lrwxr-xr-x 1 yaser admin 33 Mar 30 15:59 /usr/local/bin/python -> ../Cellar/python/2.7.3/bin/python
通常它位于:
/Library/Frameworks/Python.framework/Versions/2.7/
答案 1 :(得分:3)
首先,/ usr / local / bin / python 不是 Apple提供的Python;这总是在/ usr / bin / python。
其次,/ Library /Python / X.Y不是假设除了site-packages之外什么都没有。特别是,您可以在系统中放置要由PythonX.Y的所有框架版本共享的包。 (还有/usr/local/lib/pythonX.Y,它还有一个站点包,用于您希望由所有构建,框架和非框架共享的包。)
Apple提供的实际Python本身位于/System/Library/Frameworks/Python.framework中。
大多数第三方框架版本都在/Library/Frameworks/Python.framework中。但是,Homebrew,MacPorts和Fink都安装到不同的地方。例如,Homebrew将安装到`/usr/local/Cellar/python/X.Y.Z/Frameworks/Python.framework。
非框架构建转而进入/usr/local/share/pythonX.Y-再次,Homebrew,MacPorts和Fink安装到不同的地方。
最后,许多安装将创建符号链接(或者有时是包装脚本)到更典型的地方。特别是,/ usr / local / bin / python可能是适当的Python.framework中的Versions / X.Y / bin / python的符号链接,如上所述。
如果您对此感到困惑甚至无法理解,最简单的方法是卸载您安装的额外Python2.7和just use Apple's。有些人肯定有很好的理由可以使用另一个Python 2.7(上面链接的博客文章显示了其中的一些),但是如果你没有 这样的原因,为什么要让事情变得更难自己?
因为看起来你正在使用Homebrew,你甚至可以非破坏性地测试它是否会导致任何问题:brew unlink python
将从正常的PATH中删除所有Homebrew Python的痕迹,但是实际文件背后。然后,如果你想要它,只需brew link python
;如果没有它你会更开心,brew uninstall python
。
值得注意的是,使用virtualenv
可以更加轻松,干净地解决许多考虑需要多个PythonX.Y安装的常见原因。
如果您使用的是MacPorts或Fink,它们的设计明确是为了避免偏离标准系统位置。因此,所有内容都将安装在MacPorts / Fink根目录下的某个位置,默认分别为/opt/local
或/sw
。 (我假设/opt/local
。)这意味着框架构建将会像/opt/local/Library/Frameworks
那样,符号链接到/opt/local/bin
和/opt/local/lib
等。网站包将位于/opt/local/Library/Python/X.Y
和/或/opt/local/lib/pythonX.Y
。
因此,不可能与任何其他Python安装发生任何冲突......当然,除了/opt/local/bin
和/usr/local/bin
可能都在你的PATH上之外,pip
仍然可能表示来自Apple或Python.org安装的/usr/local/bin/pip
,而ipython
表示来自MacPorts的/opt/local/bin/ipython
...
答案 2 :(得分:1)
除了遵循符号链接之外,您还可以导入包并键入包的名称以查找它在磁盘上的位置:
>>> import crypt
>>> crypt
<module 'crypt' from '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/crypt.so'>
答案 3 :(得分:-1)
/usr
和其他几个系统路径在Finder中不可见。