Python 包名冲突

Python package names collision

我有以下项目结构:

program_name/
    __init__.py
    __main__.py
    package_name/
        __init__.py
        some_module.py

当我从顶级目录 运行 python program_name 时出现错误。看来,我的一些依赖项导入了与我同名的包。也就是说,我在 __main__.py 中导入 numpy,并且在内部深处的某个地方,它有 import package_name 行。因此,不是导入它的依赖项,而是导入我的包。

我可以在不重命名我的包的情况下解决它吗?我可以理解与您在项目中直接使用的第三方包的名称冲突。但是在这里我与一些依赖项发生了名称冲突。

如果您检查 sys.path,您可以知道您的应用程序使用的搜索顺序。

您可以在导入相关库之前和显式导入到达您的库之后修改顺序。

我认为最好更改您的包名。