Python项目中使用动态命名导入模块

2024-09-24 06:27:06 发布

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

我的项目布局如下所示:

run.py
jobs/
   job1.py
   job2.py

job1.py非常基本:

class job1():

    def __init__(self):
        print 'yo'

在运行.py,我有:

name = 'job1'
classname = 'jobs.%s' % name
__import__(classname)

显然不起作用:

Traceback (most recent call last):
  File "run.py", line 5, in <module>
    __import__(classname)
ImportError: No module named jobs.job1

以这种方式导入模块的最佳方法是什么?你知道吗


Tags: 项目runnamepyimportselfinitdef
2条回答

将其添加到__init__.pyjobs目录中

import os
jobs = {}
for module in (name for name in os.listdir(".") if name.endswith(".py")):
    jobs[module] = __import__(module)

那就这样用吧

from jobs import jobs

首先,在jobs文件夹中创建一个__init__.py文件,使这个jobs.jobs1工作。你知道吗

相关问题 更多 >