在嵌套目录 PYTHONPATH 中使用脚本的更好方法



很抱歉第二次问我自己的问题,但我完全陷入了 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()

最新更新