导入具有相对路径的Python脚本

时间:2019-01-07 09:55:34

标签: python path

我有一个脚本,可以从其目录中加载图像,并且我希望能够从任何文件中导入该脚本,而该脚本仍能够找到其图像。这样可能更清晰:

  • A/

    • file1.py
    • images/img.png
  • B/

    • file2.py

file1.py中:

image = load_img("images/img.png")

file2.py中:

import file1
# here, I expect to be able to use file1.image

但是在file2中,相对路径是相对于B/目录的,因此找不到images/img.png

无论我从何处导入image而不在此处编写绝对路径,如何都可以使用file1.py变量?最佳做法是什么?

在此先感谢您的帮助或建议。

2 个答案:

答案 0 :(得分:1)

获取目录“ file1.py”并构建路径:

# Inside file1.py
import os

filename = os.path.join(os.path.dirname(__file__), "images/img.png")
image = load_img(filename)

答案 1 :(得分:0)

默认情况下无法执行此操作。 您需要使用sys.path.insert选项转到该文件夹​​,然后导入所需文件

import sys
sys.path.insert(0, '../A/')
import file1

print file1.image