python - 导入不在路径上的python模块

标签 python import external python-module

我有一个模块 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 variableinstall 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/

相关文章:

python - 值错误: could not convert string to float: 'lisans' in Python

python - 如何在python中导入静态库?

javascript - 使用 jQuery,我们实际上可以引用单独 HTML 文件中的元素吗?

java - 基于两列对大文件进行排序

c++ - 获取另一个文件中的数据条目数?

python - Spark - 字数统计测试

python - 使用 cv2 访问图像的像素

R:如何最好地将 %>% 之类的中缀运算符导入我的包中?

ios - Flutter - 接收共享意图,与 iOS 共享 PDF

python - Django - 编辑 HTML 表行并更新数据库