如何将目录标记为vscode中的源?我尝试了所有可能的解决方案,但都没用



我在vscode中有以下结构:

development
.vscode
|____settings.json
src 
extract
|___extract.py 
utils 
|___ranking.py 
build
|__model.py 
words.txt
.env 

我想运行extract.py,我得到以下错误:

ModuleNotFoundError: No module named 'utils.ranking'

和我的一些extract.py看起来像:

import utils.ranking as qr
f = open('../words.txt')
f = f.readlines()

这些是最上面的几行。ranking.py包含一个函数ranking

现在我知道这段代码的工作原理,因为它在pycharm。唯一的问题是,我没有像在pycharm中那样将目录标记为源代码。所以我已经按照堆栈溢出的步骤,并在src文件夹下创建了一个。env文件,它看起来像:

PYTHONPATH=./src 

然后编辑设置。Json,看起来像:

{
"python.pythonPath": "/conda/envs/test01/bin/python",
"python.envFile": "${workspaceFolder}/.env"
}

然后当我运行extract.py时,我仍然得到相同的错误。是什么导致了这种情况?我还能做什么呢?vscode新手!

你需要这样设置:

"python.envFile": "${workspaceFolder}/.env",  //not need
"terminal.integrated.env.windows": {
"PYTHONPATH": "${workspaceFolder}/src"
}

您所设置的设置,仅在调试模式下有效。你可以看看官方文档。

PYTHONPATH可以通过终端设置设置(terminal.integrated.env。*)和/或在中。文件

终端设置PYTHONPATH会影响在终端中运行。由一个用户,以及任何操作的为通过终端路由的用户执行扩展,例如调试。然而,在这种情况下,当扩展正在执行时不通过终端路由的操作,例如使用衬板或格式化器,则此设置不会对模块查找。

当使用.env文件设置PYTHONPATH时,它将影响扩展代表您执行和由调试器执行的操作,但是它不会影响在终端上运行的工具。

如果需要,可以使用这两个方法设置PYTHONPATH。

相关内容

最新更新