在 Python 中部署的模块组织
Modules organization for deploying in Python
我目前正在开发 Flask 应用程序。我想在不同的文件夹中组织我的 .py 文件。这是一个可以描述所有文件夹的三个。
Application
|_Interpreter
|_
__init__.py
parser.py
|_ Classes
|_ Interfaces
__init__.py
Expressions.py
|_ Operations
__init__.py
Arithmetic.py
Operations.py
|_ SymbolTable
__init__.py
Symbol.py
Symbol_table.py
__init__.py
Driver.py
据我所知,__init__.py
使该文件夹成为一个模块,然后您应该能够从其他文件导入它们。
例如,我想从文件 Operations.py 导入 Expressions.py。我会这样做:
from Classes.Interfaces.Expression import Expression
问题是我一直收到 ModuleNotFoundError: No module named 'Classes'
我尝试使用
import sys
sys.path.append('\..')
但它并不总是有效,在给出的示例中它无效。
我知道我可以在我的计算机中附加文件的路径,但我认为如果我想将应用程序部署到服务器,它会产生一些问题。哪个是导入模块的最佳选择?
您是否尝试过将 __init__.py
添加到 Application 文件夹?
那么您可能想使用 from Application.Classes.Interfaces.Expression import Expression
。
我目前正在开发 Flask 应用程序。我想在不同的文件夹中组织我的 .py 文件。这是一个可以描述所有文件夹的三个。
Application
|_Interpreter
|_
__init__.py
parser.py
|_ Classes
|_ Interfaces
__init__.py
Expressions.py
|_ Operations
__init__.py
Arithmetic.py
Operations.py
|_ SymbolTable
__init__.py
Symbol.py
Symbol_table.py
__init__.py
Driver.py
据我所知,__init__.py
使该文件夹成为一个模块,然后您应该能够从其他文件导入它们。
例如,我想从文件 Operations.py 导入 Expressions.py。我会这样做:
from Classes.Interfaces.Expression import Expression
问题是我一直收到 ModuleNotFoundError: No module named 'Classes'
我尝试使用
import sys
sys.path.append('\..')
但它并不总是有效,在给出的示例中它无效。 我知道我可以在我的计算机中附加文件的路径,但我认为如果我想将应用程序部署到服务器,它会产生一些问题。哪个是导入模块的最佳选择?
您是否尝试过将 __init__.py
添加到 Application 文件夹?
那么您可能想使用 from Application.Classes.Interfaces.Expression import Expression
。