我是python的新手,我正在阅读twisted教程。使用twistd时,我得到以下错误:
sudo twistd -y /home/michael/Desktop/twisted_example.tac --syslog
[sudo] password for michael:
Traceback (most recent call last):
File "/usr/local/bin/twistd", line 4, in <module>
import pkg_resources
File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2707, in <module>
working_set.require(__requires__)
File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 686, in require
needed = self.resolve(parse_requirements(requirements))
File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 584, in resolve
raise DistributionNotFound(req)
pkg_resources.DistributionNotFound: Twisted==12.0.0我解决了一些包依赖和libxslt1-dev的安装,正如其他一些帖子所建议的那样,但这并没有解决问题。
我真心希望这不是一个笨拙的问题,但我对python系统不太了解,如果有任何建议,我将不胜感激。
MM
发布于 2013-01-01 01:16:29
你有/usr/local/bin/twistd和/usr/lib/python2.7/。
这表明您的系统上安装了未打包的Twisted。这可能与Twisted的打包安装冲突。
一般情况下,应避免在Linux系统上安装未打包的软件。如果您确实安装了未打包的软件,则不应该将其安装在像/usr/local这样的系统位置(尽管这是传统上安装此类软件的位置)。相反,将其安装在您的主目录中-并且不要将其安装为根目录( not install it as root )。
你的Linux供应商打包软件是有原因的-很难用一千个不同的人制作的软件来构建一个系统,并让它真正工作。打包过程让上游的人有机会测试不同的配置,然后将工作配置冻结为可以在您的计算机上精确复制的形式。
至于您的系统到底出了什么问题,我猜测您已经安装了setuptools (或发行版),并使用setup.py以根用户身份从tarball安装了Twisted 12.0.0。这会在/usr/ twistd /bin中安装一个带有setuptools的本地版本。这个版本的twistd恰好需要Twisted 12.0.0 (这不是twistd本身的一个特性,setuptools引入了它),但是它在/usr/lib/python2.7/dist-package中找到你所拥有的任何版本的Twisted,然后失败。
细节实际上可能有一点不同,因为您问题中的回溯实际上并没有包含足够的信息来真正了解您的系统是如何设置的。
解决方案是删除安装在/usr/local中的所有与Twisted相关的文件,并使用系统提供的Twisted包。如果这个版本不够新,那么你可能想升级你的Linux发行版,或者找一个由第三方提供的较新的Twisted打包版本(例如用于Ubuntu的https://launchpad.net/~twisted-dev/+archive/ppa )。
发布于 2012-12-31 16:47:02
您必须安装python-pkg-resources包
https://stackoverflow.com/questions/14098396
复制相似问题