【问题标题】:Why are different python modules installed in different locations?为什么不同的python模块安装在不同的位置?
【发布时间】:2016-12-13 22:33:08
【问题描述】:

我刚刚发现了一些奇怪的东西,不知道如何解决它。虽然我找到了一些解决方法,但如果我能提供帮助,我宁愿不这样做。

我正在开发 MBP 10.9.5。我将 pip 从 8.0.1 升级到 9.0.1。然后我安装了三个模块(如果你算上所需的模块,四个)

  • 图片
  • 枕头
  • py2app(需要 macholib,它会自动安装)

安装模块后,我在它们上运行 pip show 以查看位置。

由于某种原因,image、pillow 和 macholib 都安装在了

/usr/local/lib/python2.7/site-packages

而 py2app 安装在

/Library/Python/2.7/site-packages

我们知道为什么 python 会在安装模块的地方拆分吗?解决方法是进入 /usr/local/lib/python2.7/site-packages 并将这些模块的目录复制到 /Library/Python/2.7/site-packages。但是,如果可能,我想避免这样做,并告诉 pip 将所有内容安装在一个位置,而不是任何感觉的位置。

没有找到 pip 的配置文件(如果需要,我可以列出我查看的目录),如果有秘密隐藏的配置文件,这并不能解释为什么 pip 将模块文件安装到多个位置。

谁能告诉我为什么会发生这种情况以及如何阻止它发生?

谢谢

【问题讨论】:

  • 为什么将模块安装在不同的站点包目录中会出现问题?
  • @Gribouillis,感谢您对我的问题感兴趣。当我尝试导入模块时,python 给出一个错误并说没有该名称的模块。当我执行 pip freeze 时,它​​显示模块已安装。玩了一圈,我发现解决方法让python不会抱怨没有安装模块。

标签: python python-2.7 pip


【解决方案1】:

如果您启动python时/usr/local/lib/python2.7/site-packages不在您的sys.path中,您可以在python库目录中找到名为sitecustomize.py的文件并添加(作为超级用户)以下行

import site
site.addsitedir('/usr/local/lib/python2.7/site-packages')

在这个文件中。它应该可以解决问题。

【讨论】:

  • 嗯,这个 sitecustomize.cy 文件的唯一位置是 PyCharm 和 /usr/local/lib/python2.7/site-packages。具有讽刺意味的是,/usr/local/lib/python2.7/site-packages/sitecustomize.py 已经包含了您的行。我想我可能没有希望了。通常在哪里可以找到标准 python 安装的 sitecustomize.py 文件?
  • 可能在 /Library/Python/2.7 中(但我不知道 Mac 上的标准 python 安装)
  • 我想我已经绝望了。 cmd 'find / -name "sitecustomize.py"' 没有找到它,它也不在 /Library/Python/2.7 中。 =(
  • 你没有定位命令吗?尝试updatedb,然后尝试locate sitecustomize。或者也许在 python shell >>> import sitecustomize; print sitecustomize
  • 我可能需要走另一条路。 import sitecustomize 没用。 Python 说ImportError: No module named sitecustomize
猜你喜欢
  • 1970-01-01
  • 2021-07-02
  • 2016-02-15
  • 1970-01-01
  • 1970-01-01
  • 2021-11-07
  • 1970-01-01
  • 2019-02-08
  • 1970-01-01
相关资源
最近更新 更多