【问题标题】:Python -m switch to run module inside packagePython -m 切换运行包内的模块
【发布时间】:2020-02-22 22:37:00
【问题描述】:

我正在阅读这个article。

我想知道为什么文章中的以下陈述是正确的?因为我可以使用解决方案 1 - 即 - python -m packA.a2,它工作正常。

为了给你一些背景信息,Solution 1 说:

使用以 test/ 目录为根的绝对导入(即中间列 在上表中)。这保证了直接运行 start.py 将永远有效。为了直接运行 a2.py,请将其作为 导入模块而不是作为脚本:

  1. 在控制台中将目录更改为test/
  2. python -m packA.a2

但是在Case 3作者说:

sys.path 可能会改变(需要 2 个)

一个更难处理的问题是下面的例子。假设 a2.py 永远不需要直接运行, 但它是由直接运行的 start.py 和 a1.py 导入的。

在这种情况下,使用上述解决方案 1 将不起作用。然而, 其他解决方案仍然有效。

但我尝试了这个并使用 python -m packA.a1 让它工作

【问题讨论】:

    标签: python python-import


    【解决方案1】:

    我要求您创建这个问题,但很遗憾没有答案。我认为您是创建 Python 导入权威指南的人,并且能够提供详细的示例。

    这篇文章的问题在于,不清楚他所说的情况是什么意思。我们已经创建了我们认为他在 python2 和 python3 中的含义,并且它们有效

    也许 Christopher Yeh 有一天会看到这个问题并解开谜团,可能会在此过程中改进他的权威指南。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-26
      • 1970-01-01
      • 2014-03-31
      • 2019-04-15
      • 2020-09-16
      • 1970-01-01
      • 2019-06-16
      • 1970-01-01
      相关资源
      最近更新 更多