首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将python导入重定向到另一个模块

将python导入重定向到另一个模块
EN

Stack Overflow用户
提问于 2015-11-05 06:55:48
回答 1查看 783关注 0票数 1

我正在开发一个大型开源Python项目,其中包含该项目和其他项目都使用的模块。目标是将这些模块中的一些移出到新的“库”项目中,然后可以由原始项目和其他项目导入。

为了顺利过渡,我们的想法是将模块复制到新项目中,然后让原始项目使用新的导入。然而,为了让其他项目有时间在以后迁移,我的想法是让原始模块重定向导入。

例如,repo‘repo’中的用法是这样的(其他项目也可以这样做):

代码语言:javascript
复制
cat neutron/consumer.py
from neutron.redirected import X


print(X)

在新创建的'neutron_lib‘项目中,该模块看起来像这样(与项目’new‘中的原始模块相同):

代码语言:javascript
复制
cat ../neutron-lib/neutron_lib/redirected.py
X = 5

在“中子”项目中,我试图将其作为重定向模块来实现:

代码语言:javascript
复制
cat neutron/redirected.py
import neutron_lib.redirected
import sys

sys.modules['neutron.redirected'] = neutron_lib.redirected

当我运行pylint时,它给出了以下错误:

代码语言:javascript
复制
************* Module neutron.redirected
E:  1, 0: No name 'redirected' in module 'neutron_lib' (no-name-in-module)
************* Module neutron.consumer
E:  1, 0: No name 'X' in module 'neutron.redirected' (no-name-in-module)

如果我运行它,它运行得很好,并且consumer.py打印'5‘。如果我使用ipython并加载consumer.py,我可以在dir()输出中看到'X‘。

你知道为什么我会得到这个pylint错误吗?这是假错误吗?有什么方法可以覆盖它吗?

EN

回答 1

Stack Overflow用户

发布于 2015-11-07 07:36:19

看起来,在tox环境下运行时,我可以将以下代码添加到.pylintrc中以隐藏错误/警告

代码语言:javascript
复制
no-name-in-module
nonstandard-exception

当我运行pylint时,它现在通过了,就像运行单元测试一样。我只希望我能理解为什么我会收到这些错误/警告。

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

https://stackoverflow.com/questions/33533652

复制
相关文章

相似问题

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