Cod*_*ang 3 pythonpath python-2.7 visual-studio-code
项目结构就像
- a.py
- unittest
   - test_a.py
py
class A():
    def function_a(self):
        return 'function_a'
测试_a.py
from a import A
class TestA():
    def test_a(self):
        assert A().function_a() == 'function_a'
当我使用终端 和 时set PATHONPATH=//<my-project-folder>,可以通过 检测和测试它pytest。然而,当我尝试在 VScode 中调试它时,它不断抛出No module named a.
https://code.visualstudio.com/docs/python/environments#_environment-variable-definitions-file
我已经尝试过这种方法并将其放入.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"
我已经在 Windows 上使用 Python 3.6 对其进行了测试。
在我的测试中,我在工作区根文件夹中设置了.env内容
PYTHONPATH=C:\Projects\test-project\
运行测试会出现断言错误,并显示 的值PYTHONPATH是操作系统定义的值。
启动终端并PYTHONPATH从全局环境变量中删除,并使用C:\Projects\test-project\参数从该终端启动 VSC 打开项目,现在测试失败,但显示文件PYTHONPATH中定义的正确内容.env。
我得出的结论是,操作系统环境变量(在 Windows 上)会覆盖 VSC 设置的任何环境变量。如果这是正确的,您将无法像文档中所示那样扩展环境变量
PYTHONPATH=${PROJ_DIR}:${PYTHONPATH}
这应该在 VSC 或 VSC-python 扩展中作为错误归档。
VSC 中定义的任何内容都应覆盖任何操作系统环境变量,并且能够使用任何操作系统环境变量。
| 归档时间: | 
 | 
| 查看次数: | 9283 次 | 
| 最近记录: |