导入 Python 文件
可能重复的问题:
Python 包结构
你好,
我想导入一个在子目录中的 Python 文件,这个子目录是在我主文件的根目录下面。例如:
import ../library/utils.py
当我把这个放进我的代码里并运行时,我遇到了编译错误。
有没有办法从主文件根目录下面的文件中包含文件,还是说它必须在根目录的子目录中?
谢谢你的帮助。
2 个回答
9
你不是导入文件,而是导入模块。相应地修改 sys.path
,然后使用 import utils
来导入,比如这样。
import sys
sys.path.append('../library')
import utils
3
import sys, os
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..', 'library')))
import utils
这段代码会改变一个叫做 sys.path 的变量,这个变量里存放着程序查找文件的目录。它还会确保即使你以某种方式运行程序,它也能正确找到文件。
$ python the_file.py
$ python ../the_file.py
$ python /somewhere/over/the_file.py
这个方法适合用于开发、测试和训练阶段的内容。已经安装好的文件就不需要这样做了。