2012-03-11 47 views
0

我想用easy_install安装一个新模块。如何让easy_install将模块安装到正确的目录?

当我运行像

sudo easy_install foo 

foo的命令被安装到~/Library/Python/2.7/site-packages/

这似乎是错误的,因为我不能在我的python shell中使用任何已安装的模块。

从我通过阅读与easy_install相关的一些SO帖子了解的内容可知,正确的目录应该是/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages ,因为我的python shell使用符号链接到所述目录的/usr/local/bin/python

如何让easy_install使用此目录而不是当前的目录?

谢谢

朱利安

编辑:我重新运行安装setuptools的使用选项-d /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages。输出如下:

Processing setuptools-0.6c11-py2.7.egg 
Removing /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg 
Copying setuptools-0.6c11-py2.7.egg to /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages 
setuptools 0.6c11 is already the active version in easy-install.pth 
Installing easy_install script to /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages 
Installing easy_install-2.7 script to /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages 

Installed /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg 
Processing dependencies for setuptools==0.6c11 
Finished processing dependencies for setuptools==0.6c11 

例如, sudo easy_install mechanize

Searching for mechanize 
Best match: mechanize 0.2.5 
Processing mechanize-0.2.5-py2.7.egg 
mechanize 0.2.5 is already the active version in easy-install.pth 

Using /Users/julian/Library/Python/2.7/site-packages/mechanize-0.2.5-py2.7.egg 
Processing dependencies for mechanize 
Finished processing dependencies for mechanize 

看来easy_install仍然在使用错误的目录吗?!非常感谢帮助。谢谢。

回答

0

事实证明,我遇到了PATH问题。将/usr/local/share/python移到我的PATH顶部,并通过自制软件重新安装python修复了我的问题。

如果问题仍然存在,请务必尝试运行brew doctor,并按照相关建议操作!

3

您可以使用--prefix来设置要安装软件包的路径。或者添加/Library/Python/2.7/site-packages/到你的python路径。

+0

我试着通过'import sys sys.path.append('...')添加/Users/myuser/Library/Python/2.7/site-packages/'但是当我重新启动shell并打印sys.path我刚添加的目录没有被列出。这一切似乎很奇怪。 – Julian 2012-03-11 21:58:50

+0

是的,如果你执行sys.path.append(),它将只在你的shell会话期间停留在那里。您需要将它添加到您的主目录中的.bashrc文件中。做cd/- > nano(或vim或任何你觉得最简单的).bashrc - >将其粘贴在那里: export PYTHONPATH = $ PYTHONPATH:$/Library/Python/2。7/site-packages/- >保存 – 2012-03-11 22:56:38

+0

我将这个添加到我的.profile中,但仍然面临同样的问题。有没有办法查看easy_install正在编写其更改? – Julian 2012-03-12 17:54:02

1

执行此操作的一种方法是安装setuptools(具有easy_install)用于您尝试使用的python安装。因此,使用符号链接蟒蛇,遵循these instructions,然后,使用/Library/Frameworks/Python.framework/Versions/2.7/Scriptseasy_install,而不是~/Library/Python/2.7/Scripts

+0

我运行setuptools-installation并将-d设置为'/Library/Frameworks/Python.framewor k/Versions/2.7/lib/python2.7/site-packages',但我仍然无法访问已安装的模块。它没有给我任何错误消息,但我不确定安装是否改变了任何东西。 – Julian 2012-03-11 21:56:02

+0

你可以尝试'sudo /Library/Frameworks/Python.framework/Versions/2.7/Scripts/easy_install mechanize'而不是你的路径中的典型easy_install?我不是100%确定这是正确的目录,因为我从未在Mac上使用python。否则,我不知道还有什么要尝试。 – forivall 2012-03-12 16:25:57

+0

这会产生以下输出: 'Traceback(最近呼叫的最后一个): 文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/easy_install-2.7”,第8行,在 load_entry_point('setuptools == 0.6c11','console_scripts','easy_install-2.7')() File“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site- package_setuptools-0.6c11-py2.7.egg/pkg_resources.py“,第318行,在load_entry_point中 ImportError:未找到入口点('console_scripts','easy_install-2.7') – Julian 2012-03-12 17:49:09

相关问题