如何使用 twistd 导入自定义模块
How to import custom module with twistd
我有一个 python 文件,我想 运行 使用 twistd。在文件中我有:
from parser import Parser
我还有一个 parser.py
文件,里面有 Parser
class。
当我调用脚本时一切正常:
python myscript.py
但后来我用它来称呼它:
twistd -y myscript.py
它给我这个错误:
from parser import Parser
exceptions.ImportError: cannot import name Parser
我错过了什么?
作为模块导入的源文件需要在 Python 导入路径上被发现。 python
将包含脚本路径的目录添加到导入路径中。由于 parser.py
与 myscript.py
在同一目录中,这使得 parser
可导入。 twistd
(我认为从 2016 年的某个版本开始)确实 而不是 这样做(添加路径被认为是一个安全问题,类似于 .
在 PATH
环境变量中)。
你有几个选择。
最佳选择:为您的项目创建一个 setup.py。创建一个虚拟环境。使用 pip install -e ...
.
将您的项目安装到其中
一般选项:将包含源文件的目录添加到 PYTHONPATH 环境变量。
我有一个 python 文件,我想 运行 使用 twistd。在文件中我有:
from parser import Parser
我还有一个 parser.py
文件,里面有 Parser
class。
当我调用脚本时一切正常:
python myscript.py
但后来我用它来称呼它:
twistd -y myscript.py
它给我这个错误:
from parser import Parser
exceptions.ImportError: cannot import name Parser
我错过了什么?
作为模块导入的源文件需要在 Python 导入路径上被发现。 python
将包含脚本路径的目录添加到导入路径中。由于 parser.py
与 myscript.py
在同一目录中,这使得 parser
可导入。 twistd
(我认为从 2016 年的某个版本开始)确实 而不是 这样做(添加路径被认为是一个安全问题,类似于 .
在 PATH
环境变量中)。
你有几个选择。
最佳选择:为您的项目创建一个 setup.py。创建一个虚拟环境。使用 pip install -e ...
.
一般选项:将包含源文件的目录添加到 PYTHONPATH 环境变量。