【问题标题】:Python package names collisionPython 包名冲突
【发布时间】:2020-07-06 09:50:10
【问题描述】:

我有以下项目结构:

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

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

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

【问题讨论】:

    标签: python package name-collision


    【解决方案1】:

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

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

    在我看来,最好更改你的包名。

    【讨论】:

    • 好像是这样。只是想不出一个合适的新名字。这是ast - 简单明了。好像现在我必须称它为ast_framework 或类似的名称。变长了_framework后缀没意义(
    猜你喜欢
    • 2020-07-04
    • 2019-03-04
    • 2015-02-16
    • 1970-01-01
    • 1970-01-01
    • 2011-08-21
    • 2013-07-27
    • 1970-01-01
    相关资源
    最近更新 更多