Python 从文件导入对象而不运行该文件';s进口

Python 从文件导入对象而不运行该文件';s进口,python,Python,不确定这是否可行,但想知道是否有任何建议 假设我有一个foo.py文件 import doesnotexist bar = "Hello, World!" 我想从foo import bar执行,但由于导入不存在于此新文件的范围内,因此将失败 一种方法是将bar放入一个名为bar.py的新文件中,并让foo.py也导入该文件,但如果可能,希望跳过该文件 有什么想法吗?没有办法只导入模块的一部分-Python将在提取您要求的部分之前加载整个模块 如注释中所述,您可以捕获模块内的导入错误并忽略它

不确定这是否可行,但想知道是否有任何建议

假设我有一个foo.py文件

import doesnotexist

bar = "Hello, World!"
我想从foo import bar执行
,但由于导入不存在于此新文件的范围内,因此将失败

一种方法是将
bar
放入一个名为
bar.py
的新文件中,并让
foo.py
也导入该文件,但如果可能,希望跳过该文件


有什么想法吗?

没有办法只导入模块的一部分-Python将在提取您要求的部分之前加载整个模块

如注释中所述,您可以捕获模块内的导入错误并忽略它。如果您尝试使用未导入的模块,则代码将生成错误

try:
    import doesnotexist
except ImportError:
    pass

bar = "Hello, World!"

无法只导入模块的一部分-Python将在提取您请求的部分之前加载整个模块

如注释中所述,您可以捕获模块内的导入错误并忽略它。如果您尝试使用未导入的模块,则代码将生成错误

try:
    import doesnotexist
except ImportError:
    pass

bar = "Hello, World!"

你的问题相当含糊;为什么不捕获由
import-doesnotexist
引发的异常?不,因为这样您就不会得到
bar
,我是说在foo.py内部。否则,您无法从运行时异常的模块中获取
bar
;为什么不捕获由
import-doesnotexist
引发的异常?不,因为这样您就不会得到
bar
,我是说在foo.py内部。否则,您无法从具有运行时异常的模块中获取
bar