问题描述
我在导入自己的pip包时遇到了问题,该包的名称与django-app中的模块相同。假设我自己的pip模块称为:DatePicker
。然后,我在名为django-app的应用程序中有一个模块文件夹:
fancymodule
我遇到的问题是我在* django-project
* payments
* models.py
* fancymodule/
* __init__.py
内导入:
payments/models.py
这是假定引用通过pip安装的from fancymodule import apiclient
。而是改为在Payments-django-app内部引用模块。
如果我想在我的头上引用payments-django-app中的模块,则应为:
fancymodule
从from payments.fancymodule import whatever
的角度来看,payments/models.py
将在付款文件夹中引用import fancymodule ..
。但是我可以更改/修复它,因此它引用了{{ 1}}是通过pip安装的吗?
仅供参考:从事旧的旧项目。
有人可以帮助的家。
解决方法
关于使用
from __future__ import absolute_import
的marcinn 建议有效。
所以我在models.py
文件中的解决方案最终是:
from __future__ import absolute_import
from fancymodule import ApiClient
正如我对上述评论所说的那样。我的PYTHONPATH没有发现任何问题。正如marcinn所说,这很像是Python 3.x,因为我是2.7,所以PYTHONPATH看起来不错。
OBS:PyCharm将from fancymodule import ApiClient
用红线标出,但是可以。因此,我认为只是PyCharm需要重新启动才能删除红线。