如何在VScode中正确设置PYTHONPATH env



项目结构类似

- a.py
- unittest
- test_a.py

A.py

class A():
def function_a(self):
return 'function_a'

test_a.py

from a import A
class TestA():
def test_a(self):
assert A().function_a() == 'function_a'

当我使用终端和set PATHONPATH=//<my-project-folder>时,它可以通过pytest进行检测和测试。然而,当我尝试在VS代码中调试它时,它一直抛出No module named a

https://code.visualstudio.com/docs/python/environments#_environment-变量定义文件

我尝试过这种方式,并在我的项目文件夹中放入了一个.env

.env

PYTHONPATH=C:\Repos\test-project

(我在逃跑和不逃跑的情况下都做了,但无论如何都不起作用。(

.vscode/setting.json

{
"python.pythonPath": "C:\Python27\python.exe",
"python.testing.pytestArgs": [
"unittest"
],
"python.testing.unittestEnabled": false,
"python.testing.nosetestsEnabled": false,
"python.testing.pytestEnabled": true,
"python.envFile": "${workspaceFolder}/.env",
}

要了解PYTHONPATH环境变量的值,请使用以下test_a.py文件

import os
def test_PYTHONPATH():
assert os.environ.get('PYTHONPATH') == "XX"

我已经用Python 3.6在Windows上测试过了。

在我的测试中,我在工作区根文件夹中设置了一个.env,内容为

PYTHONPATH=C:Projectstest-project

运行测试时出现断言错误,并显示PYTHONPATH的值是操作系统定义的值。

启动一个终端并从全局环境变量中删除PYTHONPATH,并以C:Projectstest-project为自变量从该终端启动VSC打开了项目,现在测试失败,但显示了.env文件中定义的正确PYTHONPATH

我得出的结论是,操作系统环境变量(在Windows上(覆盖了VSC设置的任何环境变量。如果这是正确的,你就不能像文档中显示的那样扩展环境变量

PYTHONPATH=${PROJ_DIR}:${PYTHONPATH}

这应该作为VSC或VSC python扩展中的错误进行归档。

VSC中定义的任何内容都应该覆盖任何操作系统环境变量,并且能够使用任何操作系统的环境变量。

最新更新