我有一个模块 foo,包含 util.py 和 bar.py。
我想在 IDLE 或 python session 中导入它。我该怎么办?
我找不到关于如何导入不在当前目录或默认 python PATH 中的模块的文档。
尝试后import "<full path>/foo/util.py"
,
和 from "<full path>" import util
我能得到的最接近的是
import imp
imp.load_source('foo.util','C:/.../dir/dir2/foo')
这给了我在 Windows 7 上被拒绝的权限。
最佳答案
一种方法是简单地修改您的path :
import sys
sys.path.append('C:/full/path')
from foo import util,bar
请注意,这要求 foo 是一个 python 包,即包含一个 __init__.py
文件。如果不想修改sys.path
,可以also modify the PYTHONPATH
environment variable或 install the module on your system .请注意,这意味着该目录中的其他目录或 .py
文件可能会被无意中加载。
因此,您可能需要使用 imp.load_source
反而。它需要文件名,而不是目录(当前用户可以读取的文件):
import imp
util = imp.load_source('util', 'C:/full/path/foo/util.py')
关于python - 导入不在路径上的python模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10161568/