当我尝试用Python进行以下构造时,我在第二行得到"No module named foo"
import my_package.my_very_long_module_name as foo
from foo import f1, f2, f3
from foo import a, b, c
from foo import x, y, z
my_very_long_module_name
是文件夹my_package
(文件夹中有文件__init__.py
)中的模块(my_very_long_module_name.py
)。你知道吗
为什么上面的第二行失败了?不允许我从别名模块导入名称吗?你知道吗
如果这种构造在Python中是不合法的,那么还有其他方法可以做到这一点吗?(
你想要达到的目标可以通过我的修改来实现系统模块字典。你知道吗
警告:这样做会为这个python会话全局注册
foo
,因此任何其他尝试import foo
的模块都会以my_package.my_very_long_module_name
结束对于你的特殊情况,这可能是一个坏的方式去做这件事,因为全球的影响。但是,当需要全局重命名时,这可能很有用。你知道吗
虽然不能在import语句中使用变量是正确的,但是可以简单地访问模块的变量。你知道吗
因此,您可以:
如果你坚持的话,你甚至可以写信给
globals
。不过,老实说,我鼓励您在代码中使用限定的foo.a
。它会使它更可读。你知道吗第二行失败,因为python将尝试查找模块名
foo.py
,它不会使用刚刚导入的变量foo
。你知道吗您可以尝试以下方法:
相关问题 更多 >
编程相关推荐