Vscode PS1 venv 周围缺少括号

问题描述 投票:0回答:1

我有这个问题的相反问题:

为什么 Visual Studio Code 中的 Python 虚拟环境有双括号?

我收到一条提示,在我的 PS1 提示中显示无括号。

我正在使用最新的Python扩展

v2024.14.0
,并且还尝试了预发布。

我在 MacOS(工作)和 Ubuntu(个人)上始终遇到这个问题,并且设置和项目完全不同。

这是我最简单的设置,以减少任何其他变量:

我尝试过的事情

第 1 步 - 简化 PS1

为了减少发生奇怪事情的可能性,我已将 PS1 全局设置为以下内容:

PS1='\u:\w\$ '

第 2 步 - 全新的 vscode 工作区

我运行了

rm -rf ~/.config/Code
,完全破坏了所有本地配置和工作区设置。

我打开了 vscode,完全干净,没有工作空间/项目。

我立即点击

file > save workspace as
,并将其另存为:
~/test-bad-venv.code-workspace

然后,我确保我绝对没有启用任何扩展,除了最新的 python 扩展:

Python v2024.14.0 (by Microsoft)

我重新启动了 vscode,然后在“我信任作者”对话框中单击“是”。

作为证明,

~/test-bad-venv.code-workspace
文件具有以下内容:

{
    "folders": []
}

第 3 步 - 创建 venv

我创建一个新目录,

~/tmp
,并将其添加到项目中。我创建了一个名为
test.py
的完全空文件,并在 vscode 中打开它。

我第一次打开 vscode 控制台,并运行一些简单的信息命令。

addison:~$ which python3.13
/usr/bin/python3.13
addison:~$ python3.13 --version
Python 3.13.0rc1
addison:~/tmp$ uname -a
Linux addison-ubuntu 5.15.0-119-generic #129-Ubuntu SMP Fri Aug 2 19:25:20 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
addison:~/tmp$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.4 LTS
Release:        22.04
Codename:       jammy

我运行以下行来创建 venv:

python3.13 -m venv venv

然后选择 venv 解释器,使用

ctrl+shift+p
然后:

Python 3.13.0rc1 ('venv': venv) ./venv/bin/python

当我在 vscode 中打开一个新终端时,这立即显示得很糟糕:

venvaddison:~/tmp$ which python3
/home/addison/tmp/venv/bin/python3
venvaddison:~/tmp$ python3 --version
Python 3.13.0rc1
venvaddison:~/tmp$ echo $PS1
\[\]venv\u:\w\$ \[\]

但它在普通终端、计算机上的其他任何地方都可以正常工作:

addison:~$ cd tmp/
addison:~/tmp$ source venv/bin/activate
(venv) addison:~/tmp$ 

结论

这似乎只发生在我使用 python3.13 时,我已经用

deadsnakes
安装了它。

这没有理由是一个 python 问题,因为我自己手动运行

source
命令总是可以正常工作 - 即使在 vscode 终端中也是如此。

有人有办法解决这个问题吗?

visual-studio-code python-venv ps1
1个回答
0
投票

我可以看到,在python3.13中,在

venv/bin/activate
内,它运行:

VIRTUAL_ENV_PROMPT="venv"
export VIRTUAL_ENV_PROMPT

但是在python3.10中,它有:

VIRTUAL_ENV_PROMPT="(venv) "
export VIRTUAL_ENV_PROMPT

修复

您可以通过编辑 venv/bin/activate 以包含以下内容来修复此问题:

# This is on about like 56, as of python3.13.
# You can change this prompt to be whatever you want

VIRTUAL_ENV_PROMPT="(venv) "

然后硬重新加载 vscode。


请参阅我的帖子 https://github.com/microsoft/vscode-python/pull/23201#issuecomment-2336543889

© www.soinside.com 2019 - 2024. All rights reserved.