我正在尝试使用 alembic,它是 python 中的一个 sqlalchemy 工具。您键入一个命令,它会生成一个文件夹“alembic”,其中包含 py 文件。里面的 py 文件需要在一个名为“myapp”的单独文件夹中链接到我的应用程序。但我无法链接它。它说它不存在并且相对导入不起作用。
所以我需要从myapp/configs/config.py文件中导入我的配置类。
/apps
+--/alembic
|----env.py <--- the calling file
+--/myapp
|----configs/__init__.py <--- has "DefaultConfig" class imported
|----configs/config.py <--- I want to import the class inside here.
在 env.py 中:
from myapp.configs import DefaultConfig
不工作。
我试过:
from ..myapp.configs import DefaultConfig
没有成功。
alembic 文档中的示例代码说只使用“myapp.whatever”。
我什至在环境变量中将“/apps”和“/myapp”添加到 PYTHON_PATH 中。
示例错误:
File "D:\apps\myapp\lib\site-packages\alembic\command.p
y", line 97, in revision
script.run_env()
File "D:\apps\myapp\lib\site-packages\alembic\script.py
", line 191, in run_env
util.load_python_file(self.dir, 'env.py')
File "D:\apps\myapp\lib\site-packages\alembic\util.py",
line 186, in load_python_file
module = imp.load_source(module_id, path, open(path, 'rb'))
File "alembic\env.py", line 5, in <module>
from ..myapp.configs import DefaultConfig as conf
ValueError: Attempted relative import in non-package