首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用twistd导入自定义模块

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

Stack Overflow用户
提问于 2017-07-13 04:15:03
回答 1查看 123关注 0票数 0

我有一个python文件,我想使用twistd运行它。在我的文件里:

代码语言:javascript
复制
from parser import Parser

我还有一个parser.py文件,里面有一个Parser类。

当我使用以下方法调用脚本时,一切正常:

代码语言:javascript
复制
python myscript.py 

但我称它为:

代码语言:javascript
复制
twistd -y myscript.py

它给了我这个错误:

代码语言:javascript
复制
from parser import Parser
exceptions.ImportError: cannot import name Parser

我遗漏了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-13 10:51:31

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

你有几个选择。

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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45071296

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档