当前位置: 首页 > 知识库问答 >
问题:

python中的相对导入:除非向上移动父目录,否则使用-m标志无效

黄朗
2023-03-14

我复制了这个问题中的场景:

Python错误-ImportError:尝试在没有已知父包的情况下进行相对导入

然而,这个答案对我来说并不适用。我正在VSCode中运行python3(3.7.9),文件结构如下:

project/
├─ utils/
│  ├─ module.py
├─ server/
│  ├─ main.py

当位于目录“所有项目/项目/服务器”中时:

正在运行python3 main。pyI getImportError:尝试在没有已知父包的情况下进行相对导入

运行python3-m main重要错误:尝试相对导入没有已知的父包

-

在目录中时,所有\u项目/项目:

正在运行python3-m服务器。main:值错误:尝试在顶级包之外进行相对导入

-

仅当在目录中的所有\u项目中时:

正在运行python3-m项目。服务器main:按预期工作。

这到底是怎么回事?为什么python3-m服务器。main在项目目录中不工作?


共有1个答案

司寇高峯
2023-03-14

它可能是任何东西!包括权限!但你应该使用virtualenv

 类似资料:
  • 问题内容: 如何从父目录进行相对导入? 来自: 这给出了一个模棱两可的错误: 如何从父目录本地导入? 问题答案: 感谢您添加到您的问题。首先是一个答案,然后是一些解释。我建立了您的代码, 去获得,就像你拥有它一样。(我忽略了错误消息。) 如您所愿,将导入行设置回“ ../../../meme”。 (注释掉一些包含未使用变量的代码。) 然后在梅梅/ CMD /米姆目录,要么或者工作。 刚才我说去安装

  • 问题内容: 我有以下内容: 我正在尝试从父目录导入。在这种情况下,我尝试从测试文件夹中运行“ UnitTest1.py”,并从其上方的目录(文件“ ModuleFile.py”)导入。 我知道已经有很多答案。 SO问题1,SO问题2,其他所有SO问题。我只是找不到“使用../”作为相对导入而不是显式路径。 我知道从Python 2.5开始,根据提到使用的文档,它们支持“相对导入”,但是我专门尝试这

  • 这里是node.js的新成员; 我安装了它,并试图使用w3模块(在windows上)。 我已将我的全球回购位置更改为:

  • 我有一个名为的脚本,代码如下(我已经大大简化了事情): 但我不仅仅有一个名为的脚本。我有许多名为的脚本,按以下目录结构组织: 每个都有一个稍微不同的实现。我想对做的是通过导入每个脚本并对其运行一些测试来测试所有脚本。下面是一些代码(*'s表示伪代码) 我该怎么做?特别是,如何迭代导入脚本,例如,?

  • 我的中有一个模块,如下所示: module.py 我稍后使用调用此脚本。这个脚本大部分时间都可以工作,但我发现我被CD到了一个目录中,其中有一个文件夹,里面有,Python更喜欢这个文件夹,而不是我的中的其他模块。我认为这是因为Python将文件夹视为一个隐式的、相对的导入(我使用的是Python2.7)。 如何使Python不将$pwd中的文件夹视为隐式相对导入? 和我使用的每个其他模块都包含了