最近我第一次开始使用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代码上运行它时,我得到了相同的错误。
如果有人能在这方面帮助我,我将不胜感激。
2条答案
按热度按时间q3qa4bjr1#
我创建了一个具有以下结构的测试文件,并在vscode中打开my-codespace文件夹。
要修复上述错误,请在***my_script.py***文件的顶部添加以下代码。
mspsb9vt2#
经过几天的研究和询问,我能够解决大部分的问题。每当我找到剩余部分的答案时,我会更新这篇文章。
正如我在第一篇文章中所说的,本地版本和GitHub版本的VS Code都存在这个问题。有人建议将
PYTHONPATH
设置为我的自定义模块的路径(这里是config.py
)。这可能对你有用,但对我没用。如果你愿意这样做,你可以运行下面的命令来确保路径设置正确:对于本地版本,我通过以下操作解决了问题:
\user\settings.json
文件添加以下行,使得子文件夹中的Python脚本文件在根文件夹中找到我的自定义模块:注意,我是在Windows机器上运行代码的,如果您使用的是基于Linux的机器,则应该使用
"terminal.integrated.env.linux"
。.env
(没有文件名,只有扩展名)文件,然后添加了PYTHONPATH=Y:\Programming\my-codespace
。通过这样做,Jupyter笔记本也能够在子文件夹中找到自定义模块。如果你喜欢使用其他文件名,比如vscode.env
,你可以在应用程序设置中更改它。显然,在应用这些更改后,您需要重新加载VS代码窗口。只需按CTRL+SHIFT+P并键入reload window即可。
对于GitHub代码空间版本,我尝试做与上面相同的事情:
terminal.integrated.env.linux
)添加到settings.json
文件中,以使子文件夹中的Python脚本文件正常工作。PYTHONPATH=${PYTHONPATH}:${workspaceFolder}
(${workspaceFolder}
是项目根文件夹的别名)添加到.env
文件**并不能帮助在子文件夹中运行Jupyter笔记本,并且我像以前一样收到导入错误。**这是此问题尚未解决的部分。