我有一个python文件,我想用twistd运行。在文件里面我有:
from parser import Parser
我还有一个parser.py
文件,其中包含Parser
类。
当我使用:
调用脚本时,一切正常python myscript.py
然后我用它来调用它:
twistd -y myscript.py
它给了我这个错误:
from parser import Parser
exceptions.ImportError: cannot import name Parser
我错过了什么?
答案 0 :(得分:1)
作为模块导入的源文件需要在Python导入路径中被发现。 python
将包含脚本路径的目录添加到导入路径。由于parser.py
与myscript.py
在同一目录中,因此parser
可导入。 twistd
(从2016年的某个版本开始,我认为)不执行此操作(添加路径被认为是类似于在.
中创建的路径的安全问题PATH
环境变量)。
您有几个选择。
最佳选择:为您的项目创建setup.py。创建一个virtualenv。使用pip install -e ...
将项目安装到其中。
Mediocre选项:将包含源文件的目录添加到PYTHONPATH环境变量中。