0

对于生成源文件的python项目,我有以下结构:

/project_name/src/module_name0/scripts/generate.py
/project_name/src/module_name1/scripts/generate.py
...
/project_name/src/module_nameN/scripts/generate.py

我想使用generate位于以下位置的脚本中的脚本:

/project_name/prj/generate_all.py

如何generate从 导入脚本generate_all?我试图添加/project_name/src/module_nameKsys.path,但是因为文件具有相同的名称,其中一个隐藏了其他文件。我不想__init__.py在文件夹中添加文件,module_nameK因为那里只有其他源文件。

4

2 回答 2

0

看一下imp模块。

编辑

我想你需要imp.load_source("somemodule.name", "full/path/to/your/module")


你可以使用imp.load_module(name, ...)

取自 python 文档的示例:

import imp
import sys

def __import__(name, globals=None, locals=None, fromlist=None):
    # Fast path: see if the module has already been imported.
    try:
        return sys.modules[name]
    except KeyError:
        pass

    # If any of the following calls raises an exception,
    # there's a problem we can't handle -- let the caller handle it.

    fp, pathname, description = imp.find_module(name)

    try:
        return imp.load_module(name, fp, pathname, description)
    finally:
        # Since we may exit via an exception, close fp explicitly.
        if fp:
            fp.close()
于 2013-10-18T12:11:58.970 回答
0

您可以随时尝试:

import xxx as yyy

因此,例如,如果您想将 MySQLdb 重命名为更易于键入的名称,您可以编写

import MySQLdb as mysql
于 2013-10-18T13:02:13.247 回答