Python -m 切换运行包内的模块
Posted
技术标签:
【中文标题】Python -m 切换运行包内的模块【英文标题】:Python -m switch to run module inside package 【发布时间】:2020-02-22 22:37:00 【问题描述】:我正在阅读这个article。
我想知道为什么文章中的以下陈述是正确的?因为我可以使用解决方案 1 - 即 - python -m packA.a2
,它工作正常。
为了给你一些背景信息,Solution 1 说:
使用以 test/ 目录为根的绝对导入(即中间列 在上表中)。这保证了直接运行
start.py
将永远有效。为了直接运行a2.py
,请将其作为 导入模块而不是作为脚本:在控制台中将目录更改为
test/
python -m packA.a2
但是在Case 3作者说:
sys.path
可能会改变(需要 2 个)一个更难处理的问题是下面的例子。假设
a2.py
永远不需要直接运行, 但它是由直接运行的start.py
和a1.py
导入的。在这种情况下,使用上述解决方案 1 将不起作用。然而, 其他解决方案仍然有效。
但我尝试了这个并使用 python -m packA.a1
让它工作
【问题讨论】:
【参考方案1】:我要求您创建这个问题,但很遗憾没有答案。我认为您是创建 Python 导入权威指南的人,并且能够提供详细的示例。
这篇文章的问题在于,不清楚他所说的情况是什么意思。我们已经创建了我们认为他在 python2 和 python3 中的含义,并且它们有效
也许 Christopher Yeh 有一天会看到这个问题并解开谜团,可能会在此过程中改进他的权威指南。
【讨论】:
以上是关于Python -m 切换运行包内的模块的主要内容,如果未能解决你的问题,请参考以下文章