Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将导入限制为特定路径,而不限制导入的模块';s路径_Python_Import_Sys.path - Fatal编程技术网

Python 将导入限制为特定路径,而不限制导入的模块';s路径

Python 将导入限制为特定路径,而不限制导入的模块';s路径,python,import,sys.path,Python,Import,Sys.path,是否可以从特定目录导入模块,而不影响导入模块的导入路径 如果我临时用所需目录替换sys.path,则导入的模块将无法导入该目录之外的任何内容 我不想只在目录前加上sys.path,因为我不想导入到另一个源。标准库允许您搜索路径列表来查找和导入模块,而无需更改sys.path。例如: import imp search_paths = [path_to_spam] modfile, modpath, description = imp.find_module('spam', search_pat

是否可以从特定目录导入模块,而不影响导入模块的导入路径

如果我临时用所需目录替换
sys.path
,则导入的模块将无法导入该目录之外的任何内容

我不想只在目录前加上
sys.path
,因为我不想导入到另一个源。

标准库允许您搜索路径列表来查找和导入模块,而无需更改
sys.path
。例如:

import imp

search_paths = [path_to_spam]
modfile, modpath, description = imp.find_module('spam', search_paths)
with modfile:
    spam = imp.load_module('spam', modfile, modpath, description)

所以,您只想在特定目录中存在特定模块时导入该模块?为什么不将路径前置到
sys.path
,导入并测试是否导入了正确的模块?或者在导入之前测试模块文件是否存在?我想我可以检查目录是否包含
\uuuu init\uuuuu.py
文件,并且仅在该文件存在时导入。如果我要在导入后检查模块是否来自正确的位置,则清理将有点棘手。@eryksun,这正是我要寻找的控件类型!如果你回答,我就接受:)