python导入特定文件

标签 python import

尝试导入名为environment.py的特定文件 问题是我在多个位置都有这个文件 我加载所有文件变量(每个文件中超过 20 个变量)的方式是:

从环境导入*

问题是,我的 environment.py 位于 2 个目录中,并且我的 sys.path 包含这两个目录。 python 从列表中的第一个位置加载文件。

尝试过

import os, sys, imp
path = os.path.dirname(os.path.abspath(__file__))
file = path + '/environment.py'
foo = imp.load_source('*',file)

但是我的变量被加载到 foo 中,而不是直接加载。

有什么想法可以强制从正确的位置导入*

最佳答案

如果您想继续您开始的操作并且这是在全局范围内,您可以将其添加到末尾:

for varName in dir(foo):
    globals()[varName] = getattr(foo, varName)

现在,environment.py 中定义的所有变量都位于您的全局命名空间中。

尽管按照 Tom Karzes 的建议和做法可能更容易:

import os, sys
sys.path.insert(0, path)
from environment import *

# Optional. Probably harmless to leave it in your path.
del sys.path[0]

关于python导入特定文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33740833/

相关文章:

python - 在没有索引的 for 循环中引用列表条目,可能吗?

python - 多进程 sqlite INSERT : "database is locked"

python - 在导入函数中引用 python 对象

python - 如何自动为 Python 中的每个导入文件设置全局?

java - 有条件的类导入

python - 服务 attention_ocr 模型时出错 ("error": "Expected one or two output Tensors, found 17")

python 运行时错误 : "mi" not found for replace

python - 如何在spyder中传递 bool 参数?

python - 从网络导入模块

c# - 使用 .net 导入/导出大型数据集