为什么不同的python模块安装在不同的位置?

为什么不同的python模块安装在不同的位置?,python,python-2.7,pip,Python,Python 2.7,Pip,我只是发现了一些奇怪的东西,不知道如何修复它。虽然我发现了一个混乱的解决方法,但如果我能帮助的话,我宁愿不这样做 我正在开发MBP10.9.5。我将pip从8.0.1升级到9.0.1。然后我安装了三个模块(如果算上所需的模块,则为四个) 形象 枕头 py2app(需要macholib,它会自动安装) 安装模块后,我在模块上运行pip show以查看位置 出于某种原因,图像,枕头和macholib都安装在 /usr/local/lib/python2.7/site-packages /Lib

我只是发现了一些奇怪的东西,不知道如何修复它。虽然我发现了一个混乱的解决方法,但如果我能帮助的话,我宁愿不这样做

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

  • 形象
  • 枕头
  • py2app(需要macholib,它会自动安装)
安装模块后,我在模块上运行pip show以查看位置

出于某种原因,图像,枕头和macholib都安装在

/usr/local/lib/python2.7/site-packages
/Library/Python/2.7/site-packages
而py2app安装在

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

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

有人能告诉我为什么会发生这种情况,以及如何阻止它发生吗


谢谢

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

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

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

为什么在不同的站点包目录中安装模块会有问题?@Gribouillis,感谢您对我的问题感兴趣。当我尝试导入模块时,python给出了一个错误,并说没有该名称的模块。当我执行pip冻结时,它会显示已安装的模块。玩过之后,我发现解决方案使python不会抱怨没有安装模块。Hmmm,这个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中=(您没有locate命令吗?请尝试
updatedb
,然后
locate sitecustomize
。或者在python shell中导入sitecustomize;打印sitecustomize我可能需要走另一条路。
导入sitecustomize
不起作用。python说
导入错误:没有名为sitecustomize的模块。