组织下载的python库

时间:2014-11-17 22:46:13

标签: python macos

我注意到我的python库和其他依赖项存储在我的目录层次结构周围的不同位置。例如,

  • /Library/Python/2.7/site-packages/
  • /usr/local/lib/python2.7/site-packages/
  • /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/
  • /Users/<name>/bin/

最近未能升级其中一个(我的$PATH var现在包含7个目录)让我相信我需要以某种方式重新组织这些文件。

1)当点击或“刷新”新图书馆时,下载的文件应该转到哪个特定目录? (例如/Library/python/2.7/site-packages)

2)是否有任何有用的资源来说明如何组织自己的个人文件系统? (特别是下载的python库,或者更普遍的)

1 个答案:

答案 0 :(得分:1)

让我们把它们排除在外:

  

1)当'pip'ing'或'酿造'新库时,比如说下载文件应该去哪个特定目录?

首先,下载的文件进入临时目录并在安装后删除。这由pipbrew自动处理。

对于Python包,无论是否由pip安装,您都可以在系统范围和特定于用户的安装之间进行选择(参见User Installs),但除此之外,它们只是进入您的Python站点包。可以配置该位置,但没有充分的理由。对于Apple预装的Python,它是/Library/python/2.7/site-packages。如果你想要更多的控制,你不应该试图保持自定义的site-packages目录(或多个Python安装);使用virtualenv构建单独的虚拟环境,然后pip将安装到当前处于活动状态的环境中,而不是安装到正常的站点包中。

对于使用brew安装的程序和库,它们内置于“{1}}下的”kegs“隔离目录中,然后任何有用的内容从那里链接到/usr/local/Cellar,{ {1}}等。如果您想了解更多信息,请使用Homebrew文档详细说明。这当然包括您作为Python包的依赖项安装的库。例如,如果您/usr/local/bin /usr/local/libbrew install libxslt不知道为什么您正在安装pip install lxml,那么它只是构建它一个小桶,并将其链接到brew,就像其他任何东西一样。

无论哪种方式,你都应该尝试组织事情。 libxslt/usr/local/lib都知道他们安装的地方,如果你事后搞砸了,卸载,更新等可能会破坏。


  

最近未能升级其中一个(并且我的$ PATH var现在包含7个目录)让我相信我需要以某种方式重新组织这些文件。

您的pip与Python查找库的位置无关。这就是你的shell寻找可执行程序的地方。 Python查看的内容是sys.path,这是完全不同的事情。


  

我注意到我的python库和其他依赖项存储在我的目录层次结构的各个地方

不,他们真的不是。您安装的每个Python库都会进入site-packages目录。

那么,brew上的所有其他内容呢?嗯,有Python标准库($PATH和/或sys.path),以及Apple预安装的额外模块(/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7),以及其中的各种子目录(以及zip文件和eggfiles)两个位置,当然还有当前工作目录(/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7.zip/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python),应该是它。

  

(即/ usr / local / python,/ Library/python/2.7/site-packages,或/ usr / bin / python ..)

'.'不是存储库的地方。它根本不是一个目录;这是一个可执行文件。当您在终端输入''或运行以/usr/bin/pythonpython开头的脚本时,该程序会运行。

#!/usr/bin/python根本不存在。它不是Apple预装Python,官方Python.org安装或Homebrew安装的标准路径的一部分。如果您已创建并将其添加到#!/usr/bin/env python ......那么,如果您不想这样做,请不要这样做。

如果你的意思是/usr/local/python,那么(a)这是一个可执行文件,而不是库的地方,(b)这意味着你已经安装了第二个Python和Apple预安装的Python,如果你不能让它们保持平直,你应该摆脱它。