导入 Python 文件

1 投票
2 回答
14468 浏览
提问于 2025-04-16 18:12

可能重复的问题:
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

这个方法适合用于开发、测试和训练阶段的内容。已经安装好的文件就不需要这样做了。

撰写回答