如何导入驻留在外部目录中的python文件

如何导入驻留在外部目录中的python文件,python,Python,我有一个常量文件,其中包含代码中常量的一些键和值 hct/constants.py 我正在我的实用程序中导入它们 hct/data_processors 通过在实用程序内部执行导入 import constants 执行死刑时,我感到恐惧 File "web_page_test_utils.py", line 7, in <module> import constants ImportError: No module named constants 文件“web\u pag

我有一个常量文件,其中包含代码中常量的一些键和值

hct/constants.py
我正在我的实用程序中导入它们

hct/data_processors 
通过在实用程序内部执行导入

import constants
执行死刑时,我感到恐惧

File "web_page_test_utils.py", line 7, in <module>
import constants
ImportError: No module named constants
文件“web\u page\u test\u utils.py”,第7行,在
导入常数
ImportError:没有名为常量的模块
如何从外部目录导入文件。

最简单的方法:

import os
import sys

htc_path = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
if htc_path not in sys.path:
    sys.path.append(htc_path)

import constants

如果我理解您的问题,我找到的唯一解决方案是将父目录(您的外部目录)附加到sys.path

import sys

sys.path.append('./..')

否则,我认为您需要从父目录运行代码(即hct/file\u in\u which\u do\u your\u imports.py),以便包含hct/constants.py和hct/data\u processors/web\u page\u test\u utils.py

您看过了吗?是的,我从..开始尝试了相对导入。。常量导入常量。它也不起作用。你的“包”的结构是什么?您是否有适当的
\uuuuu init\uuuuuuuy.py
文件?“不工作”意味着什么-差异错误消息?相同的错误消息?其他内容?错误为“ValueError:尝试在非包中进行相对导入”
\uuuu init\uuuuuuuuuuuuuuuuuuuuuuuuuuuupy
与constants.py在同一文件夹中,
/data\u处理器中是否有
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu?你能展示一下问题的完整结构吗?A总是有帮助的。