ImportError:没有名为twisted.internet的模块

use*_*184 15 twisted python-2.7

我安装了python 2.7.5,工作正常.

然后我安装scrapy(我认为,它使用内部扭曲).我的scrapy蜘蛛也很好用.

我安装了扭曲:

sudo apt-get install python-twisted

然后,我使用此处显示的Echo Server代码创建了一个示例程序

这是代码

from twisted.internet import protocol, reactor


class Echo(protocol.Protocol):
    def dataReceived(self, data):
        self.transport.write(data)

class EchoFactory(protocol.Factory):
    def buildProtocol(self, addr):
        return Echo()

reactor.listenTCP(1234, EchoFactory())
reactor.run()
Run Code Online (Sandbox Code Playgroud)

我尝试使用此命令运行此代码:

$ python twistedTester.py 
Traceback (most recent call last):
  File "twistedTester.py", line 1, in <module>
    from twisted.internet import protocol, reactor
ImportError: No module named twisted.internet
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮助我如何调试为什么我的扭曲包没有被Python安装拾取?

小智 13

如果您使用pip,请尝试:

pip install twisted
Run Code Online (Sandbox Code Playgroud)

同样适用于w3lib和lxml.

在某些*nix系统上,这可能会给您一个权限错误.如果发生这种情况,请尝试

sudo -H pip install twisted
Run Code Online (Sandbox Code Playgroud)


use*_*184 9

我弄清楚为什么会发生这种错误.出于某种原因,使用apt-get安装python包并没有正确安装它.

所以,我必须下载一个tar球并从中安装包.

我从这里下载了Twisted tar .

我做了tar xjf Twisted-13.1.0.tar.bz2- 这创建了一个名为Twisted-13.1.0的目录

接下来,cd Twisted-13.1.0 最后,python setup.py install

这给了我一个错误.Twisted需要另一个名为zope.interface的包.所以,我从这里下载了zope.interface的tar ball .然后,运行此命令tar xzf zope.interface-3.6.1.tar.gz 创建了一个名为zope.interface-3.6.1的文件夹.所以,cd进入zope.interface-3.6.1然后运行python setup.py install

注意:根据您的用户权限,您可能希望在sudo模式下执行这些命令.只需在每个命令之前添加关键字sudo.

  • `apt-get install python-twisted`通常一直有效.如果没有,你应该向你的发行团队(Debian或Ubuntu,似乎)发送详细的错误报告,以便他们可以解决这个问题.虽然需要更多细节而不是"不正确安装". (5认同)

小智 6

请将文件twisted.py重命名为其他内容.无论何时从文件导入函数,解释器都将在当前位置搜索文件,然后在库中搜索.因此,如果你有任何名为" twisted.py "的文件,你应该重命名它.

重命名后.在再次运行之前,不要删除twisted.pyc文件.