本地python模块会覆盖通过pip安装的模块

问题描述

我在导入自己的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需要重新启动才能删除红线。