在包中运行模块的Python-m开关 [英] Python -m switch to run module inside package

查看:17
本文介绍了在包中运行模块的Python-m开关的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在阅读article

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

为了给您提供一些上下文,Solution 1说:

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

  1. 在控制台中将目录切换到test/
  2. python -m packA.a2

但在Case 3中作者说:

sys.path可以更改(Take 2)

下面的示例是一个较难处理的问题。假设a2.py从不需要直接运行, 但它同时由直接运行的start.pya1.py导入。

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

但我尝试了一下,并使用python -m packA.a1

使其工作

推荐答案

我要求您创建此问题,但遗憾的是没有答案。我以为您就是创建了一本关于Python导入的权威指南的人,并且能够提供一个详细的示例。

这篇文章的问题是,不清楚他所说的情况是什么意思。我们已经创建了我们认为他在python2和python3中所指的东西,它们都工作得很好

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

这篇关于在包中运行模块的Python-m开关的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆