我有一個包含兼容導入模塊的包。但是,我無法直接從公開的模塊導入;我必須使用稍微不方便的解決方法。從模塊變量導入Python
裏面常見/ compat.py,我有這樣的:
import bcrypt
在main.py,這不起作用:
from common.compat.bcrypt import hashpw
與錯誤:
Traceback (most recent call last):
File "main.py", line 2, in <module>
from common.compat.bcrypt import hashpw
ImportError: No module named bcrypt
但是,這工作正常:
from common.compat import bcrypt
# now bcrypt.hashpw works fine
有沒有辦法讓第一個工作正常工作,而無需做第二個解決方案?我寧願從相當多的類和方法進口。
哎呀,不給他出主意有關修改'SYS .modules'就像這樣! :) - +1爲正確的解釋,但。 –
請給我們一個很大的警告,那就是搞亂'sys。模塊'不是一個好主意,*特別是*如果OP不知道自己在做什麼(自從他問這個問題後他不知道)。 – Bakuriu
@FerdinandBeyer和Bakuriu,更好? –