我有这样的项目结构:
package1/__init__.py
package1/file1.py
package1/file2.py
package2/__init__.py
package2/file1.py
package2/file2.py
__init__.py
script1.py
script2.py
不幸的是,我发现我只能从根目录运行代码,例如,从script1.py
运行代码。如果我从pakage2/file2.py
运行说,文件之间的所有链接都会丢失,即package1
中package2
的所有导入都找不到。
Python中正确的目录结构是什么,它限制了所有目录的包结构?
答案 0 :(得分:0)
您需要package1
和package2
都在一个包中,在这种情况下,它们都可以互相导入:
root_package/
__init__.py
package1/
package2/
或者将软件包添加到PYTHONPATH
,在这种情况下,系统上的任何python脚本都可以从中导入:
export PYTHONPATH="$PYTHONPATH:/path/to/package1:/path/to/package2"
更新:如果直接运行脚本,则无法作为程序包的一部分导入。你应该做的是根据需要在包中定义类和函数,然后从另一个脚本中导入它们:
root_package/
__init__.py
my_script.py
package1/
package2/
script.py
:
from package1 import ...
from package2 import ...