找不到Setuptools
我正在从Linux系统切换到OSX系统,当我运行我们项目的setup.py脚本时,出现了一个错误信息,内容是:
这个脚本需要setuptools版本0.6c7。
我尝试了好几次去安装setuptools,并且确认setuptools的文件确实存在于/Library/Python/2.6/site-packages这个目录下。但我不知道为什么它没有被识别出来。
2 个回答
你有没有试过在你的 setup.py
脚本里导入 setuptools 呢?
import setuptools
这之前帮我解决了很多和 setuptool 相关的构建问题。
在OS X系统上,拥有多个版本的Python是很常见的事情。在最近的OS X版本中,苹果自己就提供了两个版本的Python(在/usr/bin
目录下)。你可能还通过python.org的网站安装了更新的版本(这些一般在/Library/Frameworks/Python.framework
目录下),或者使用像MacPorts这样的包管理工具安装(这些会安装在/opt/local/Library/Frameworks/Python.framework
)。要记住,每个Python版本都需要自己的一份setuptools
。
你提到的包路径是/Library/Python/2.6/site-packages
,这很可能说明你在OS X 10.6中使用了苹果提供的Python 2.6.1来尝试安装新的setuptools
版本。需要注意的是,苹果已经为它的Python版本提供了setuptools
(在10.6中是0.6c9版本);相应的easy_install
命令在/usr/bin
目录下。
$ /usr/bin/python2.6 -c 'import setuptools;print(setuptools.__file__,setuptools.__version__)'
('/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/setuptools/__init__.pyc', '0.6c9')
如果你使用的是其他非苹果提供的Python,请按照说明安装新的setuptools
(或Distribute
),确保你调用的是正确版本的Python。检查一下你的shell路径和用which python
命令确认一下。
如果这样还不行,请更新你的问题,提供更多信息。
更新:根据你进一步的评论,似乎你的默认site-packages目录有些问题。解决了这个问题后,确认已经安装了苹果提供的setuptools
版本0.6c9,看来你尝试安装的包在寻找一个特定的、较早的setuptools
版本0.6c7。如果是这样,你应该先弄清楚为什么需要这个版本,以及是否真的有必要。很可能只是包的setup.py
文件中版本说明不正确,比如用==
而不是>=
。如果可以的话,编辑setup.py
文件,让它可以使用更新的版本。如果这个包确实需要那个特定的旧版本的setuptools
(而且可能还不兼容你当前的Python或OS X版本),你可以尝试安装旧版本,方法如下:
$ sudo /usr/bin/easy_install-2.6 setuptools==0.6c7
$ /usr/bin/python2.6 -c 'import setuptools;print(setuptools.__file__,setuptools.__version__)'
('/Library/Python/2.6/site-packages/setuptools-0.6c7-py2.6.egg/setuptools/__init__.pyc', '0.6c7')
不过,如果可以的话,你真的应该避免这样做,因为这会在/usr/local/bin
中安装另一个旧版本的easy_install
,可能会导致安装和使用其他包时出现问题。