很抱歉第二次问我自己的问题,但我完全陷入了 python import file
。
我在下面有一个目录结构:
|--test/foo.py
|--library #This is my PYTHONPATH
|--|--script1.py
|--|--library_1
|--|--|--script2.py
|--|--library_2
|--|--library_3
我正在从test/foo.py
访问library/library_1/script2.py
。
在这里,我对什么是更好的方法感到困惑。通常,所有库文件夹或实用程序函数都应添加到pythonpath
中。
这是我维护的文件夹结构,用于区分实用程序函数和测试脚本。
我尝试将__init__.py
放入库和库1中,然后像from library1 import script2
一样导入,但No module named script
时出错。
我也尝试将该路径附加到系统路径。
工作:如果我添加另一个pythonpath
,例如path/to/library/libray_1/
.那么我应该对文件夹中的所有文件夹执行此操作library
以使其正常工作吗?
以下是您需要执行的操作:
|--test/foo.py
|--library #This is my PYTHONPATH
|--__init__.py
|--|--script1.py
|--|--library_1
|--|--|--__init__.py
|--|--|--script2.py
|--|--library_2
|--|--|--__init__.py
|--|--library_3
|--|--|--__init__.py
在下面的第一个__init__.py
库中,您需要执行以下操作:
import library1
import library2
import script
然后,如果library
是你的 python 路径,你可以在 test/foo.py
内执行此操作,而不会出错:
import library
library.library1.bar()
library.script.foo()