Я пытаюсь использовать alembic, который является инструментом sqlalchemy в python. Вы вводите команду, и она создает папку «перегонный куб» с файлами 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
Нет успеха.
пример кода в документах перегонного куба говорит, что просто используйте «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
'../myapp'
кsys.path
Python в env.py перед импортом. - person martineau   schedule 04.02.2013