想象一下这个目录结构:
app/
__init__.py
sub1/
__init__.py
mod1.py
sub2/
__init__.py
mod2.py
Run Code Online (Sandbox Code Playgroud)
我正在编码mod1,我需要从中导入一些东西mod2.我该怎么办?
我尝试了from ..sub2 import mod2但是我得到了"尝试非包装中的相对导入".
我google了一下,但发现只有" sys.path操纵"黑客.有没有干净的方式?
编辑:我__init__.py的所有人目前都是空的
EDIT2:我想这样做,因为SUB2包含了为子包(共享类sub1,subX等等).
Edit3:我正在寻找的行为与PEP 366中描述的相同(感谢John B)
假设有一个文件夹'/ home/user/temp/a40bd22344'.该名称是完全随机的,并且每次迭代都会发生变化.我需要能够使用固定名称在Python中导入此文件夹,比如'project'.我知道我可以将此文件夹添加到sys.path以启用导入查找,但有没有办法用'project'替换'a40bd22344'?
也许在init .py中有一些聪明的黑客攻击?
添加:
它需要是全局的 - 也就是说,其他脚本通过标准加载'project':
import project
Run Code Online (Sandbox Code Playgroud)
必须正常工作,而是加载a40bd22344.