我已经做了研究,但我找不到明确的解决方案...... 如果我有同名的包,如何导入第三方包?
例:
项目树如下所示:
├── 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
中。