我是python的新手,我正在完成扭曲的教程。使用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
答案 0 :(得分:1)
您有/usr/local/bin/twistd
和/usr/lib/python2.7/
。
这表示您的系统上已经安装了 unpackaged Twisted。这可能与Twisted的打包安装相冲突。
通常应避免在Linux系统上安装未打包的软件。如果您确实安装了未打包的软件,则不应将其安装在/usr/local
之类的系统位置(尽管传统上这是安装此类软件的地方)。而是将其安装在您的主目录中 - 并且不以root身份安装它。
您的Linux供应商打包软件是出于某种原因 - 很难用一千个不同的人制作的软件构建系统并让它真正起作用。打包过程为上游某人提供了测试不同配置的机会,然后将工作配置冻结成可以在您的计算机上准确再现的形式。
就系统出错的具体情况而言,我的猜测是您安装了setuptools(或分发),并使用setup.py
以root身份从tarball安装了Twisted 12.0.0。这在/ usr / local / bin中安装了一个setuptools感染版twistd
。这个版本的twistd
要求Twisted 12.0.0(这不是twistd
的一个特性,setuptools引入它)但是它找到了你在/ usr / lib / python2中的任何Twisted版本相反,.7 / dist-packages失败。
细节可能实际上有点不同,因为问题中的回溯实际上并没有包含足够的信息来真正了解您的系统是如何设置的。
解决方案是删除/ usr / local中安装的所有Twisted相关文件,并使用系统提供的Twisted包。如果该版本不够新,那么您可能希望升级Linux发行版或查找由第三方提供的更新的Twisted打包版本(例如,https://launchpad.net/~twisted-dev/+archive/ppa用于Ubuntu)。
答案 1 :(得分:0)
您必须安装python-pkg-resources软件包