我安装了python 2.7.5,工作正常。
然后我安装scrapy(我认为,它在内部使用扭曲)。我的scrapy蜘蛛也很好用。
我安装了twisted:
sudo apt-get install python-twisted
然后,我使用显示here
的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()
我尝试使用此命令运行此代码:
$ 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
任何人都可以帮我解释为什么我的调试为什么我的扭曲包没有被Python安装拾取?
答案 0 :(得分:12)
如果您使用pip,请尝试:
pip install twisted
与w3lib和lxml相同。
在某些* nix系统上,这可能会给您一个权限错误。如果发生这种情况,请尝试:
sudo -H pip install twisted
答案 1 :(得分:9)
我弄清楚为什么会发生这种错误。出于某种原因,使用apt-get
安装python包并没有正确安装。
所以,我必须下载一个tar球并从中安装包。
我从here下载了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的包。所以,我从here下载了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。
答案 2 :(得分:5)
请将文件 twisted.py 重命名为其他内容。无论何时从文件导入函数,解释器都将在当前位置搜索文件,然后在库中搜索。所以,如果您有任何名称为&#34; twisted.py &#34;你应该重命名它。
重命名后。在再次运行之前,不要删除 twisted.pyc 文件。
答案 3 :(得分:1)
它也发生在我身上。最后,我发现有一个名为BASH
的文件是我目前的工作目录。我删除了$("#myTable_info").text()
和twisted.py
。问题解决了。
答案 4 :(得分:0)
我弄清楚为什么apt-get install python-twisted
不够或者#34;正确安装&#34;,如你所说,用户1700184。
我使用的是Debian Wheezy和Python 2.7。
我只需要移动名为&#34; twisted&#34;的文件夹。从/usr/lib/python2.7/dist-packages/
到/usr/lib/python2.7/
同样必须使用包&#34; zope&#34;以及您尝试运行代码时未安装的任何其他内容。
然而,为什么在我的情况下这甚至是必要的仍然是一个谜,因为我的sys.path
确实包括/usr/lib/python2.7/
和/usr/lib/python2.7/dist-packages
,所以dist-packages
下的任何内容都应该有已被翻译检索。
答案 5 :(得分:0)
我认为值得注意的是,如果您使用sudo启动python,则使用的是原始默认系统python。这是你的PATH
所指向的python NOT 。例如,如果您使用的是Anaconda,并且已更新路径,which python
指向path/to/anaconda/bin/python
,sudo which python
仍会指向usr/bin/python
。
很明显sudo python twistedTester.py
找不到扭曲的模块。要解决这个问题,你应该明确地将路径传递给anaconda python。像这样:
sudo path/to/anaconda/bin/python twistedTester.py
答案 6 :(得分:0)
类似Twisted的外观可能已从当前版本中删除了twisted.internet
模块。固定在the version required by scrapy
(17.9.0)上对我有用:
$ pip install twisted==17.9.0
检查是否已安装:
$ python -c "import twisted.internet; print(twisted.internet)"
<module 'twisted.internet' from '/Users/username/dev/env/redacted-ewmlD2h2/lib/python3.7/site-packages/twisted/internet/__init__.py'>