Pythonのsqlalchemyツールであるalembicを使用しようとしています。コマンドを入力すると、内部に py ファイルを含むフォルダー「alembic」が生成されます。内部の 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