1

我是 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 系统,如果有任何建议,我将不胜感激

毫米

4

2 回答 2

1

你有/usr/local/bin/twistd/usr/lib/python2.7/

这表明您在系统上安装了未打包的 Twisted。这可能与 Twisted 的打包安装相冲突。

您通常应该避免在 Linux 系统上安装未打包的软件。如果您确实安装了未打包的软件,则不应将其安装在诸如此类的系统位置/usr/local(尽管传统上这是安装此类软件的位置)。相反,将其安装在您的主目录中 - 并且不要root 身份安装它。

你的 Linux 供应商打包软件是有原因的——很难用一千个不同的人制作的软件构建一个系统并让它真正工作。打包过程让上游人员有机会测试不同的配置,然后将工作配置冻结成可以在您的计算机上完全复制的形式。

至于你的系统出了什么问题的细节,我猜你已经安装了 setuptools(或分发),并且你从一个 tarball 安装了 Twisted 12.0.0,作为 root,使用setup.py. twistd这在 /usr/local/bin 中安装了一个 setuptools-infested 版本。这个版本twistd需要 Twisted 12.0.0(这不是twistd它自己的特性,setuptools 引入了它)但是它会找到 /usr/lib/python2.7/dist-packages 中的任何 Twisted 版本,然后失败.

细节实际上可能有点不同,因为您问题中的回溯实际上并没有包含足够的信息来真正了解您的系统是如何设置的。

解决方案是删除安装在 /usr/local 中的所有 Twisted 相关文件,并改用系统提供的 Twisted 包。如果该版本不够新,那么您可能需要升级您的 Linux 发行版或找到由第三方提供的更新的 Twisted 打包版本(例如https://launchpad.net/~twisted-dev/+archive/ ppa用于 Ubuntu)。

于 2012-12-31T17:16:28.690 回答
0

你必须安装 python-pkg-resources 包

于 2012-12-31T08:47:02.470 回答