1

我正在从 Linux 切换到 OSX,当我运行构建的 setup.py 脚本时,我收到一条包含文本的错误消息

此脚本需要 setuptools 版本 0.6c7。

我曾多次尝试安装 setuptools,并已验证 setuptools egg 存在于 /Library/Python/2.6/site-packages 中。我不知道为什么它没有被识别。

4

2 回答 2

1

在 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 提供的setuptools0.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_installin/usr/local/bin并可能导致安装和使用其他包时出现问题。

于 2010-09-05T04:38:59.417 回答
0

您是否尝试在setup.py脚本中导入 setuptools?

import setuptools

这解决了我过去的 setuptool- ish构建问题。

于 2010-09-05T04:00:20.263 回答