簡體   English   中英

如何在python中導入具有相同名稱的多個文件

[英]How to import multiple files with same name in python

對於生成源文件的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_all導入generate腳本? 我試圖將/project_name/src/module_nameK添加到sys.path ,但是由於文件具有相同的名稱,其中一個隱藏了其他文件。 我不想在module_nameK文件夾中添加__init__.py文件,因為那里只有其他源文件。

看一下imp模塊。

編輯

我認為您需要imp.load_source("somemodule.name", "full/path/to/your/module")


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

取自python docs的示例:

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()

您可以隨時嘗試:

import xxx as yyy

因此,例如,如果您想將MySQLdb重命名為更易於鍵入的名稱,則可以編寫

import MySQLdb as mysql

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM