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
,您可以知道您的应用程序使用的搜索顺序。
您可以在导入相关库之前和显式导入到达您的库之后修改顺序。
我认为最好更改您的包名。
我有以下项目结构:
program_name/
__init__.py
__main__.py
package_name/
__init__.py
some_module.py
当我从顶级目录 运行 python program_name
时出现错误。看来,我的一些依赖项导入了与我同名的包。也就是说,我在 __main__.py
中导入 numpy
,并且在内部深处的某个地方,它有 import package_name
行。因此,不是导入它的依赖项,而是导入我的包。
我可以在不重命名我的包的情况下解决它吗?我可以理解与您在项目中直接使用的第三方包的名称冲突。但是在这里我与一些依赖项发生了名称冲突。
如果您检查 sys.path
,您可以知道您的应用程序使用的搜索顺序。
您可以在导入相关库之前和显式导入到达您的库之后修改顺序。
我认为最好更改您的包名。