python - 我们如何从文件系统层次结构中主脚本上方的目录中导入一些东西?
问题描述
prj
-pkg_1
--file1.py
-pkg_2
--file2.py
在里面file2.py
我们有类似的东西:
# Ye be in dis 'ere file which be name-ed `file2.py`
if __name__ == '__main__':
## MAGICAL IMPORT STATEMENT HERE ###
# import Klass from pkg_1/file1.py
# definitely do not write `from . [blah, blah, blah]`
# NO DOTS ALLOWED AFTER `from` inside main script!
else: # We not be da main script
from ..pkg_1.file1 import Klass
# go to parent directory of current file
# (parent dir of `file2.py` is `pkg2`)
# go to parent_directory_of(`pkg2`) == `proj`
# look for `pkg_1` under `proj`
# look for `file1` under `pkg_1`
# look for `Klass` inside `file1`
我们可以用什么替换MAGICAL IMPORT STATEMENT
,这样如果我们file2.py
作为主脚本运行,我们就不会得到"ValueError: attempted relative import beyond top-level package"
解决方案
推荐阅读
- java - 获取计算天数/添加当前日期的空值加上用户输入的值
- javascript - 加载页面时为什么我的框不消失?
- java - Java 机器人:在循环期间停止的方法
- algorithm - 在已满日程中安排一次约会的算法
- lucene - Lucene 搜索获取文本字段的奇怪方面结果
- sapui5 - 将第一列标题移动到一定宽度的每一行
- python - 将 ascii 文本转换为数字并返回 ascii
- python - For 循环将每个新元素附加到列表中,但 '\n' 代替逗号出现
- vue.js - vue.js 中后端的连续轮询
- javascript - 是否可以使用 HTML、CSS 和 JavaScript 呈现非 4 面容器?