【发布时间】:2011-05-23 21:09:14
【问题描述】:
你好, 我正在寻找一个 python 文件,该文件位于我的主文件根目录下的子目录中。例如
import ../library/utils.py
当我将它放入我的代码并运行它时,我得到一个编译错误。
有没有办法从主文件根目录下面包含文件,还是必须在根目录的子目录中?
感谢您的帮助。
【问题讨论】:
标签: python python-2.7 python-import
你好, 我正在寻找一个 python 文件,该文件位于我的主文件根目录下的子目录中。例如
import ../library/utils.py
当我将它放入我的代码并运行它时,我得到一个编译错误。
有没有办法从主文件根目录下面包含文件,还是必须在根目录的子目录中?
感谢您的帮助。
【问题讨论】:
标签: python python-2.7 python-import
您不导入文件,而是导入模块。相应地修改sys.path,并做import utils,例如
import sys
sys.path.append('../library')
import utils
【讨论】:
import的模块名,而不是文件名) .
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
这适用于正在开发、测试和培训的东西。安装的文件不需要这样的结构。
【讨论】:
__file__ 可能无法反映源的实际安装位置(字节码通常构建在临时构建目录中,然后重新定位到安装目录)。对于鸡蛋和 zip 文件,它也失败了。