尝试导入名为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/