我是python的新手,我的导入遇到了异常情况。基本上,我只是想把东西整理成包。例如,请参阅此基本目录结构:
root
|
-------
| |
a b
如果我推出'在root中使用脚本并在' a中使用脚本。从''导入脚本,然后看起来我的脚本中的导入是' a'需要相对于“发射”的位置而言。脚本(在root中)。这没关系,但是我使用IntelliJ作为我的IDE,当我在查看' a'目录,IntelliJ认为进口是坏的,因为他们不是相对的'到了' a'目录。
这有意义吗?难道我做错了什么?
由于
_ 编辑关注 _ _
我有这样的进口(我的' b'有孩子):
from b.bchild import SomeClass
from b import anotherBChild as blah
我尝试添加' b'作为IntelliJ中的源根,但是' b'是主要源根的子节点,因此IntelliJ抱怨源目录不应该相交。
如果我将导入更改为root.b等等,那么当运行root脚本时,我会遇到运行时失败。
我的每个目录中都有一个空的 init .py。
我应该重新考虑一切运行得很好......我似乎无法让IntelliJ理解导致我认为我做错了什么的导入语句。
答案 0 :(得分:0)
如果我正确理解你的问题,我相信这个解决方案应该有效:
您需要将“root”目录的父级添加到pythonpath。
然后你放一个空的
__init__.py
在“root”中输入“root”的所有子项及其所有子项,依此类推。
完成此操作后,您可以非常轻松地导入脚本。
示例:
假设目录“a”包含脚本 foo.py ,目录“b”包含脚本栏。吡啶强>
现在您要在 foo 中导入 bar ,只需将此行添加到 foo :
将root.b.bar导入为条
编辑:我没有使用intellij和python的经验。但如果它像PyCharm(都是由jetbrains制作)那么你还需要将你的“root”文件夹的父级添加到intellij,就像添加项目一样(就像他在评论中说的那样)。