如何使用twistd导入自定义模块

时间:2017-07-13 04:15:03

标签: python twisted

我有一个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

我错过了什么?

1 个答案:

答案 0 :(得分:1)

作为模块导入的源文件需要在Python导入路径中被发现。 python将包含脚本路径的目录添加到导入路径。由于parser.pymyscript.py在同一目录中,因此parser可导入。 twistd(从2016年的某个版本开始,我认为)执行此操作(添加路径被认为是类似于在.中创建的路径的安全问题PATH环境变量)。

您有几个选择。

最佳选择:为您的项目创建setup.py。创建一个virtualenv。使用pip install -e ...将项目安装到其中。

Mediocre选项:将包含源文件的目录添加到PYTHONPATH环境变量中。