【问题标题】:Two packages which contain modules with same name两个包含同名模块的包
【发布时间】:2015-12-04 10:10:51
【问题描述】:

假设我们有两个 python 包。

第一个名为 lib1 并包含 sample 模块。

setup.py 我们的名字是name='lib1'

所以安装后,我们可以直接使用import sample

但是如果lib2 包含模块sample 怎么办?

好像会有冲突。

如何处理?有什么协议吗?

lib1
    sample
    tests
    setup.py


lib2
    sample
    tests
    setup.py

【问题讨论】:

    标签: python python-2.7 package packages setuptools


    【解决方案1】:

    只需要在导入时为每个包中的模块定义一个别名...

    类似:

    import package1.module as uniquemod1
    import package2.module as uniquemod2
    

    【讨论】:

    • 如果我尝试将其导入为import lib1.sample,则会出现错误ImportError: No module named lib1.sample
    • 从项目根目录到包/模块的完整路径是什么?如果它在另一个包中,请务必说明它等等...
    【解决方案2】:

    使用别名或非常谨慎地引用这些库

    import package1
    import package2
    
    # There should be no mistaking which function is being called this way
    package1.module.function()
    package2.module.function()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-21
      • 2013-03-21
      • 2015-12-10
      • 2012-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多