本地python模块覆盖使用pip安装的模块



我在导入自己的pip包时遇到问题,该包的名称与django应用程序中的模块相同。假设我自己的pip模块名为:fancymodule。然后,我在一个名为的django应用程序中有一个模块文件夹

* django-project
* payments
* models.py
* fancymodule/
* __init__.py

我遇到的问题是,在payments/models.py内部,我导入:

from fancymodule import ApiClient

这假设是引用通过pip安装的fancymodule。但却引用了支付django应用程序中的模块。

如果我想参考支付django应用程序中的模块,在我的脑海中,这应该是:

from payments.fancymodule import whatever

我从payments/models.py的视图中了解到,import fancymodule ..将在支付文件夹中引用fancymodule。。但是我可以更改/修复它吗,这样它就引用了通过pip安装的fancymodule

仅供参考:正在进行一个旧的遗留项目。

回家有人可以帮忙。

marcinn关于使用from __future__ import absolute_import的建议有效。

所以我在models.py文件中的解决方案最终是:

from __future__ import absolute_import
from fancymodule import ApiClient

正如我对上述评论所说的。。我没有发现我的蟒蛇有什么毛病。正如marcinn所说,这是最像Python 3.x的东西。。由于我是2.7,这是有道理的巨蟒看起来很好。

OBS:PyCharm对from fancymodule import ApiClient进行了红线批注,但它有效。所以我认为只有PyCharm需要重新声明才能删除红线。

最新更新