Python 3.6,导入同名的本地与第三方包



我已经做了研究,但我找不到明确的解决方案...... 如果我有同名的包,如何导入第三方包?

例:

项目树如下所示:

├── Pipfile
├── Pipfile.lock
├── analytics
│   ├── __init__.py
│   └── client.py
└── main.py

分析/客户端.py的内容很简单:

def identify():
print("local analytics")

analytics/init.py是单行的:

from .client import  identify

main.py

import analytics

analytics.identify();

如果我运行python main.py它会将本地分析写入输出。还行。

但是,如果我安装带有名称分析的第三方软件包,例如

pipenv install analytics-python(https://segment.com/docs/sources/server/python/(

并运行python main.py,它将再次将本地分析写入输出。

如何从第三方包运行代码?

这里的重点是您将__init__.py作为脚本运行。当您运行脚本时,Python 会将包含该脚本的目录添加到sys.path的前面,这全局影响所有后续导入。

因此,为了使用第三方模块,您必须重命名本地分析目录或删除__init__.py文件,以便python不会将其列在sys.path中。

相关内容

  • 没有找到相关文章

最新更新