找不到Setuptools

1 投票
2 回答
7523 浏览
提问于 2025-04-16 03:43

我正在从Linux系统切换到OSX系统,当我运行我们项目的setup.py脚本时,出现了一个错误信息,内容是:

这个脚本需要setuptools版本0.6c7。

我尝试了好几次去安装setuptools,并且确认setuptools的文件确实存在于/Library/Python/2.6/site-packages这个目录下。但我不知道为什么它没有被识别出来。

2 个回答

0

你有没有试过在你的 setup.py 脚本里导入 setuptools 呢?

import setuptools

这之前帮我解决了很多和 setuptool 相关的构建问题。

1

在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,可能会导致安装和使用其他包时出现问题。

撰写回答