【问题标题】:How do imports between different modules packaged by PyPi work?PyPi 打包的不同模块之间的导入如何工作?
【发布时间】:2019-05-03 09:50:26
【问题描述】:

我已将模块 A.pyB.py 打包到 PyPI 包 P 中。在A.py 内部,有一个函数a()B.py 导入一个函数b()。即,A.py 看起来像

from B import b

def a():
    <some `a` code>
    b()

B.p 看起来像

def b():
    <some `b` code>

就像我说的,两个模块都打包到P 中。然后我进入一个既不存在A.py 也不存在B.py 的环境,运行pip install P,并在Python 中执行以下操作

from P.A import a

a()

然后我得到错误No module named B

我该如何解决这个问题?

【问题讨论】:

  • 您确定 B.py 包含在 P.whl 中吗?
  • I have packaged modules A.py and B.py into a PyPI package P. 你的意思是你有python模块P,你有A.py和B.py,你能不能给我P的目录结构?
  • A.pyB.py 最初位于同一目录下。 P 不是一个模块,而是一个 pip 包(参见 PyPi)。
  • from P.B import bfrom .B import b

标签: python pip pypi


【解决方案1】:

在 A.py 中使用 import as

from .B import b

【讨论】:

    猜你喜欢
    • 2016-11-11
    • 2017-01-15
    • 2016-10-26
    • 2019-09-14
    • 2021-09-08
    • 1970-01-01
    • 2021-08-30
    • 2021-03-09
    • 2020-08-17
    相关资源
    最近更新 更多