1
我正在開發一個大型的開源Python項目,其中包含項目和其他項目使用的模塊。目標是將這些模塊中的一部分移出到一個新的「庫」項目,然後由原始項目和其他項目導入。將python導入重定向到另一個模塊
爲了平滑過渡,我們的想法是將模塊複製到新項目中,然後讓原始項目使用新的導入。但是,爲了讓其他項目有時間遷移,以爲原始模塊會重定向導入。
例如,使用是這樣的回購協議「中子」(其他項目可以做同樣的):在創建新的「neutron_lib」項目
cat neutron/consumer.py
from neutron.redirected import X
print(X)
的,模塊看起來像這樣(的一樣的東西原來是項目「中子」):
cat ../neutron-lib/neutron_lib/redirected.py
X = 5
在「中子」的項目,我想這樣做,因爲重定向模塊:
cat neutron/redirected.py
import neutron_lib.redirected
import sys
sys.modules['neutron.redirected'] = neutron_lib.redirected
當我運行pylint的,它給了這些錯誤:
************* 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錯誤?這是一個錯誤的錯誤?有沒有辦法覆蓋它?
該代碼有效,但只是失敗pylint。不知道如何禁用該錯誤。 – pcm