python导入特定文件
正在尝试导入名为python导入特定文件,python,import,Python,Import,正在尝试导入名为environment.py的特定文件 问题是我在不止一个位置有这个文件 我加载所有文件变量(每个文件中有20多个变量)的方式是: 从环境导入* 问题是,我有两个目录中的environment.py,我的sys.path包含这两个目录。python从列表中的第一个位置加载文件 尝试 但是我的变量被加载到foo中,而不是直接加载 你知道如何强制从正确的位置导入*吗?把它放在一个模块中 /module __init__.py environment.py 这样你就可
environment.py的特定文件
问题是我在不止一个位置有这个文件
我加载所有文件变量(每个文件中有20多个变量)的方式是:
从环境导入*
问题是,我有两个目录中的environment.py
,我的sys.path
包含这两个目录。python从列表中的第一个位置加载文件
尝试
但是我的变量被加载到foo
中,而不是直接加载
你知道如何强制从正确的位置导入*
吗?把它放在一个模块中
/module
__init__.py
environment.py
这样你就可以打电话了
from module.environment import *
而且,在两个模块中使用environment.py
应该没有问题,唯一的区别是导入调用。这就是你的意思吗?如果你想继续你开始的工作,并且这是在全局范围内,你可以在结尾添加以下内容:
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]
在导入之前,您可以修改sys.path
以首先放置所需的目录。这只是不使用import*
的另一个原因。第一个解决方案有效,但第二个解决方案只是导入了错误的环境
文件。我还尝试了sys.path.append(path)
import os, sys
sys.path.insert(0, path)
from environment import *
# Optional. Probably harmless to leave it in your path.
del sys.path[0]