Python Twisted是否已更改其依赖项?
我目前正在从事一个Python/Twisted项目,该项目将在Planetlab上进行分发和测试。出于某种原因,我的代码在周五工作,现在我想测试一个小改动,但它根本不起作用:Python Twisted是否已更改其依赖项?,python,twisted,Python,Twisted,我目前正在从事一个Python/Twisted项目,该项目将在Planetlab上进行分发和测试。出于某种原因,我的代码在周五工作,现在我想测试一个小改动,但它根本不起作用: Traceback (most recent call last): File "acn_a4/src/node.py", line 6, in <module> from twisted.internet.protocol import DatagramProtocol File "/usr/
Traceback (most recent call last):
File "acn_a4/src/node.py", line 6, in <module>
from twisted.internet.protocol import DatagramProtocol
File "/usr/lib/python2.5/site-packages/Twisted-10.0.0-py2.5-linux-i686.egg/twisted/__init__.py", line 18, in <module>
from twisted.python import compat
File "/usr/lib/python2.5/site-packages/Twisted-10.0.0-py2.5-linux-i686.egg/twisted/python/compat.py", line 146, in <module>
import operator
File "/home/cdecker/dev/acn/acn_a4/src/operator.py", line 7, in <module>
File "/home/cdecker/acn_a4/src/node.py", line 6, in <module>
from twisted.internet.protocol import DatagramProtocol
File "/usr/lib/python2.5/site-packages/Twisted-10.0.0-py2.5-linux-i686.egg/twisted/internet/protocol.py", line 20, in <module>
from twisted.python import log, failure, components
File "/usr/lib/python2.5/site-packages/Twisted-10.0.0-py2.5-linux-i686.egg/twisted/python/log.py", line 19, in <module>
from twisted.python import util, context, reflect
File "/usr/lib/python2.5/site-packages/Twisted-10.0.0-py2.5-linux-i686.egg/twisted/python/util.py", line 5, in <module>
import os, sys, hmac, errno, new, inspect, warnings
File "/usr/lib/python2.5/inspect.py", line 32, in <module>
from operator import attrgetter
ImportError: cannot import name attrgetter
回溯(最近一次呼叫最后一次):
文件“acn_a4/src/node.py”,第6行,在
从twisted.internet.protocol导入数据报协议
文件“/usr/lib/python2.5/site-packages/Twisted-10.0.0-py2.5-linux-i686.egg/Twisted/_-init___;.py”,第18行
从twisted.python导入compat
文件“/usr/lib/python2.5/site packages/Twisted-10.0.0-py2.5-linux-i686.egg/Twisted/python/compat.py”,第146行,in
进口经营者
文件“/home/cdecker/dev/acn/acn_a4/src/operator.py”,第7行,在
文件“/home/cdecker/acn_a4/src/node.py”,第6行,在
从twisted.internet.protocol导入数据报协议
文件“/usr/lib/python2.5/site packages/Twisted-10.0.0-py2.5-linux-i686.egg/Twisted/internet/protocol.py”,第20行,in
从twisted.python导入日志、失败、组件
文件“/usr/lib/python2.5/site packages/Twisted-10.0.0-py2.5-linux-i686.egg/Twisted/python/log.py”,第19行,在
从twisted.python导入util、上下文、反射
文件“/usr/lib/python2.5/site packages/Twisted-10.0.0-py2.5-linux-i686.egg/Twisted/python/util.py”,第5行,在
导入操作系统、系统、hmac、错误号、新建、检查、警告
文件“/usr/lib/python2.5/inspect.py”,第32行,在
从运算符导入吸引器
ImportError:无法导入名称属性
由于我是python新手,我不知道是什么导致了这个问题
欢迎所有建议:-)您自己的一个文件,
/home/cdecker/dev/acn/acn_a4/src/operator.py
隐藏Python的内置操作符
模块。您应该将自己的operator.py
重命名为其他名称
您可以在这里看到问题:
File "/usr/lib/python2.5/site-packages/Twisted-10.0.0-py2.5-linux-i686.egg/twisted/python/compat.py", line 146, in <module>
import operator
File "/home/cdecker/dev/acn/acn_a4/src/operator.py", line 7, in <module>
文件“/usr/lib/python2.5/site packages/Twisted-10.0.0-py2.5-linux-i686.egg/Twisted/python/compat.py”,第146行
进口经营者
文件“/home/cdecker/dev/acn/acn_a4/src/operator.py”,第7行,在
Twisted尝试导入操作符,但Python会加载您自己的一个模块
为了防止将来发生类似的事情,您可能不应该像这样将src文件夹添加到PYTHONPATH中。改为创建一个包,以便您自己的文件显示为
myproject.mymodule
,并且不能对内置文件进行阴影处理。ImportError在import
语句中出现,原因是模块、包或名称不存在,无法导入名称。在您的情况下,attrgetter
不存在于operator
模块中
第一个想法是在项目的主目录中定义一个名为operator
的模块。模块或包按照sys.path
顺序进行搜索,如果在主目录中定义了同名模块,则在搜索路径中隐藏了同名的所有其他模块