Importlib.import_module不会导入模块,尽管参数为绝对路径。

2024-04-26 20:24:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个.py模块,它在C:\Python_Projects\MyModules\中,名为button_generator.py。在

我的代码是这样的:

module_path='C:\\Python_Projects\\MyModules'
module_name='button_generator.py'
sys.path.append(module_path)
try:
   limp=importlib.import_module(module_name.split('.')[0])
except:
   print 'module import error'

我也尝试过其他版本:

  • 在importlib.import_模块(模块名称)不带拆分
  • 在importlib.import_模块('C:\Python\u Projects\MyModules\button_生成器.py')
  • 在importlib.import_模块('C:\Python\u Projects\MyModules\button_generator')

文件夹C:\Python_Projects\MyModules在我的系统路径就像我在调试期间检查的那样。在

为什么模块不能导入?在


Tags: 模块path代码namepyimportsysbutton
2条回答

我建议您重新排序您的项目目录,并避免调用不在您当前目录项目中的其他模块。你会避免这种错误的。在

例如,让我们组织项目目录和文件夹,如下所示:

MyProjectFolder/
├── main.py
└── modules
    ├── __init__.py
    └── MyLib.py

NB:别忘了添加一个名为__init__.py的空文件

我的lib.py:

^{pr2}$

主.py:

#!/usr/bin/python3

# from folder.file import class
from modules.MyLib import MyLib

class MainClass:
    def __init__(self):
        my_lib = MyLib()           # load MyLib class
        my_lib.print_say_hello()   # access to MyLib methods

### Test
if __name__ == '__main__':
    app = MainClass()

在终端中运行时:

$ python3 main.py 

输出:

Hello i'm in modules/MyLib

所以这里我们成功地将modules/MyLib.py中的类导入到我们的main.py文件中。在

我发现了错误:

在通过打印ImportError异常的参数来处理它之后,我注意到button_generator.py有一个无法解析的导入。基本上,button_generator.py无法导入,因为它的导入错误。在

相关问题 更多 >