繁体   English   中英

python导入无法从一个模块到另一个模块

[英]python import not working from one module to another

我有一个下面的结构 在此处输入图片说明

在migrations / env.py文件中,我正在尝试from database import *导入from database import *但是它no module name database显示no module name database
我试图from ..database imprt *和添加文件pythonpath还,但没有运气:(

您的目录结构对我来说有点可疑。 通常, alembic.ini不应该是软件包的一部分(默认情况下,setuptools在打包时不会将其拾取)。 我认为最好将其放在项目根目录中。

像这样的东西会更标准:

├── alembic.ini ├── migrations │ ├── env.py │ ├── script.py.mako │ └── versions │ └── ... ├── package_name │ └── database │ ├── __init__.py │ └── ... │ └── models │ └── __init__.py │ └── ... ├── README.md └── setup.py └── ...

现在,仅此一项将无法使database可从env.py 为此,您必须以某种方式使您的包可发现。 通常,这可以通过将package_name安装到某些virtualenv中来完成。 在那种环境下,您可以在env.py使用from package_name.database import *

迁移需要知道从何处导入,它们要么属于同一软件包:

A:

迁移

数据库

初始化 .py

然后在迁移中:

从A.database.whatever导入其他任何东西

或者,您将它们作为软件包单独安装在您的virtualenv中:然后它们彼此依赖,但是由于已安装它们,因此可以调用它们:

database / setup.py迁移/setup.py

然后都安装了,并且migrations / env.py可以调用已安装的软件包数据库

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM