我正在从 Linux 切换到 OSX,当我运行构建的 setup.py 脚本时,我收到一条包含文本的错误消息
此脚本需要 setuptools 版本 0.6c7。
我曾多次尝试安装 setuptools,并已验证 setuptools egg 存在于 /Library/Python/2.6/site-packages 中。我不知道为什么它没有被识别。
我正在从 Linux 切换到 OSX,当我运行构建的 setup.py 脚本时,我收到一条包含文本的错误消息
此脚本需要 setuptools 版本 0.6c7。
我曾多次尝试安装 setuptools,并已验证 setuptools egg 存在于 /Library/Python/2.6/site-packages 中。我不知道为什么它没有被识别。
在 OS X 系统上拥有多个 Python 版本是很常见的。在最近发布的 OS X 中,Apple 自己发布了两个版本(在 中/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 中使用 Apple 提供的 Python 2.6.1 来尝试安装新版本的setuptools
. 请注意,Apple 已经setuptools
为其 Python 提供了(0.6c9 用于 10.6 中的 2.6.1);对应的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')
如果您使用的是其他非 Apple 提供的 Python,请按照说明安装setuptools
(或Distribute
)的新版本,确保您调用的是正确版本的 Python。检查你的 shell PATH 并which python
确保。
如果这没有帮助,请使用更多信息更新您的问题。
更新:根据您的进一步评论,您的默认站点包目录中似乎有问题。解决了这个问题并确定安装了 Apple 提供的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')
但是如果可能的话,你真的应该避免这样做,因为这会安装另一个旧版本的easy_install
in/usr/local/bin
并可能导致安装和使用其他包时出现问题。
您是否尝试在setup.py
脚本中导入 setuptools?
import setuptools
这解决了我过去的 setuptool- ish构建问题。