python 使用GitHub代码空间编辑器时出现ModuleNotFoundError

ff29svar  于 2023-03-11  发布在  Python
关注(0)|答案(2)|浏览(177)

最近我第一次开始使用GitHub代码空间,我从我的一个仓库创建了一个新的代码空间,假设文件夹结构如下:

my-codespace
|--- utils
|------ my_script.py
|--- config.py

当我在my_script.py中导入config.py时,出现以下错误:

ModuleNotFoundError: No module named 'config'

Autocomplete在编辑器中工作,当我尝试导入config.py时,它可以识别它

一段时间后,出现指示错误的红线

所有属于config.py的方法、类和变量都可以在my_script.py中通过自动完成来获得。
目前,我正在我的计算机上使用PyCharm,并且该存储库没有任何问题,但是当我在本地VS代码上运行它时,我得到了相同的错误。
如果有人能在这方面帮助我,我将不胜感激。

q3qa4bjr

q3qa4bjr1#

我创建了一个具有以下结构的测试文件,并在vscode中打开my-codespace文件夹。

my-codespace
├─ config.py
└─ utils
   └─ my_script.py

要修复上述错误,请在***my_script.py***文件的顶部添加以下代码。

import sys
sys.path.append("./")

mspsb9vt

mspsb9vt2#

经过几天的研究和询问,我能够解决大部分的问题。每当我找到剩余部分的答案时,我会更新这篇文章。
正如我在第一篇文章中所说的,本地版本和GitHub版本的VS Code都存在这个问题。有人建议将PYTHONPATH设置为我的自定义模块的路径(这里是config.py)。这可能对你有用,但对我没用。如果你愿意这样做,你可以运行下面的命令来确保路径设置正确:

import os
print(os.environ)

对于本地版本,我通过以下操作解决了问题:

  • \user\settings.json文件添加以下行,使得子文件夹中的Python脚本文件在根文件夹中找到我的自定义模块:
"terminal.integrated.env.windows": {
"PYTHONPATH": "${workspaceFolder}"
}

注意,我是在Windows机器上运行代码的,如果您使用的是基于Linux的机器,则应该使用"terminal.integrated.env.linux"

  • 我还在根文件夹中创建了一个.env(没有文件名,只有扩展名)文件,然后添加了PYTHONPATH=Y:\Programming\my-codespace。通过这样做,Jupyter笔记本也能够在子文件夹中找到自定义模块。如果你喜欢使用其他文件名,比如vscode.env,你可以在应用程序设置中更改它。

显然,在应用这些更改后,您需要重新加载VS代码窗口。只需按CTRL+SHIFT+P并键入reload window即可。
对于GitHub代码空间版本,我尝试做与上面相同的事情:

  • 我将Linux版本(terminal.integrated.env.linux)添加到settings.json文件中,以使子文件夹中的Python脚本文件正常工作。
  • PYTHONPATH=${PYTHONPATH}:${workspaceFolder}${workspaceFolder}是项目根文件夹的别名)添加到.env文件**并不能帮助在子文件夹中运行Jupyter笔记本,并且我像以前一样收到导入错误。**这是此问题尚未解决的部分。

相关问题