我有一个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我遗漏了什么?
发布于 2017-07-13 10:51:31
导入作为模块的源文件需要在Python导入路径上被发现。python将包含脚本路径的目录添加到导入路径。因为您的parser.py与myscript.py位于同一个目录中,所以parser是重要的。twistd (我认为从2016年的某个版本开始)没有这样做(添加路径被认为是一个安全问题,类似于.在PATH环境变量中创建的问题)。
你有几个选择。
最佳选择:为您的项目创建一个setup.py。创建一个虚拟环境。用pip install -e ...将您的项目安装到其中。
Mediocre选项:将包含源文件的目录添加到PYTHONPATH环境变量。
https://stackoverflow.com/questions/45071296
复制相似问题