这是我的环境:
CentOS 64位7.2.1511
Anaconda 3 4.1.1 64位(Python 3.5.2)
我想通过创建venv虚拟环境pyvenv.不幸的是,我收到此错误消息:
$ pyvenv test
Error: Command '['/root/test/bin/python', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1
在搜索互联网后,人们说模块ensurepip丢失了.我检查了我的Anaconda安装路径/opt/anaconda3/lib/python3.5.没有ensurepip文件夹.
然后,在我的Windows 10 64位上,我检查了我的Anaconda安装路径D:\win10\Anaconda3\Lib\.有一个ensurepip文件夹!我可以成功python -m venv test地创建一个venv.
然后,我检查了下载Anaconda python档案:
D:\win10\Anaconda3\pkgs\python-3.5.2-0.tar.bz2在Windows 10和
/opt/anaconda3/pkgs/python-3.5.2-0.tar.bz2CentOS 7上.
Windows 10上的一个存档有一个ensurepip子文件夹.但是CentOS 7上没有!
有谁知道这个区别?这是Anaconda的错误吗?
我在用户的主目录下编译了 Python 3.8.1
configure --prefix=/home/a_user/python3.8 --enable-shared
Run Code Online (Sandbox Code Playgroud)
python3 -m venv test_env
Error: Command '['/home/a_user/test_env/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1.
Run Code Online (Sandbox Code Playgroud)
test_env/
??? bin
? ??? python -> python3
? ??? python3 -> /home/a_user/python3.8/bin/python3
??? include
??? lib
? ??? python3.8
? ??? site-packages
??? lib64 -> lib
??? pyvenv.cfg
6 directories, 3 files
Run Code Online (Sandbox Code Playgroud)
python3 -m ensurepip
Looking in links: /tmp/tmpeqrn78f5
Requirement already satisfied: setuptools in ./python3.8/lib/python3.8/site-packages (41.2.0)
Requirement already satisfied: pip in …Run Code Online (Sandbox Code Playgroud) 我已经在 Linux 上安装了 python 和虚拟环境,但是每次我尝试创建新的虚拟环境时,bin 文件夹都会丢失许多文件,例如激活脚本。只有运行以下命令才能成功:
sudo virtualenv myvenv
Run Code Online (Sandbox Code Playgroud)
如果我只运行virtualenv myvenvbin文件夹是不完整的。
我还设法创建了一个虚拟环境python -m venv myvenv
为什么会发生这种情况我不想使用python3,只想使用python。有任何想法吗?
I have successfully activated a virtual environment and installed packages there, but when I try to list those packages with pip list I get the list of global packages, not those in the activated venv.
$ source ./venv/bin/activate
[venv] pip list
# ... global 2.7 packages are listed
[venv] pip3 list
# ... global 3 packages are listed
Run Code Online (Sandbox Code Playgroud)
but
$ cd venv/lib/pythonXX/site-packages
$ ls
# ...venv's installed packages are listed
Run Code Online (Sandbox Code Playgroud)
even though python -version correctly lists the venv's Python (and …
在跑步的时候
$ sudo docker build -t myproj:tag 。
我被这条消息击中了
You are using pip version 10.0.1, however version 18.0 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Run Code Online (Sandbox Code Playgroud)
并考虑到最近偶尔出现的微妙之处与错误有关:
"/usr/bin/pip" "from pip import main" "ImportError: cannot import .."
Run Code Online (Sandbox Code Playgroud)
我宁愿屈服并确实升级。
所以我pip upgrade在DockerFile, 中添加命令,在venv 构建之后,因为pip重要的是 venv 中的那个(我做对了吗?)。所以我的 Dockerfile 现在有这个:
...
RUN python -m venv venv
RUN pip install --upgrade pip
...
Run Code Online (Sandbox Code Playgroud)
但是这样做并不能避免“您正在使用 pip 10.x”消息。我错过了什么?
更新
虽然是一个很有希望的建议,但
RUN source venv/bin/activate
RUN pip …Run Code Online (Sandbox Code Playgroud) 编辑清晰度:这个问题是关于venv的,它经常与virtualenv混淆。
删除系统的Python安装(使用该源在系统上创建虚拟环境所使用的源)有什么后果venv?
最终,我想做的是删除3.7安装并在发行3.8时安装3.8,但是我不确定虚拟环境与系统环境之间的连接强度。
提出此问题时可能相关的一些系统详细信息:
rh-Pythonx.x yum存储库中的packge。/usr/local/bin/python3.7/usr/local/bin/python3 是一个链接 /usr/local/bin/python3.7鉴于上述细节,我的印象是Python的3.8将安装到下/usr/local/bin/python3.8和python3然后将指向该版本。
虚拟环境内部是否有足够的空间成为自己稳定的3.7环境?还是会崩溃,尝试引用不再存在的系统安装?
tl; dr: 从不再存在的Python源创建的所有虚拟环境中发生了什么?
我刚刚升级到 Ubuntu 20.04。我在虚拟环境中使用 Django 处理 python 3.7 项目,所以即使使用升级的发行版(涉及安装 python 3.8),我也有信心我的 venv 仍然可以工作。不幸的是,事实并非如此:当我激活我的 venv 时,python 的解释器仍然是 3.8 版本,没有任何作用。python 3.7 完全缺失。我该怎么做才能恢复我的项目?
operating-system upgrade linux-distro python-3.x python-venv
我在 Windows 10 机器上安装了最新版本的 Python 3.8.2。我以前有 Python 3.7,我将其卸载并在系统路径中确认它不再被引用。
安装最新版本后,我以管理员身份运行 CMD:
py -m venv env
Run Code Online (Sandbox Code Playgroud)
我收到这个错误:
错误:[WinError 2] 系统找不到指定的文件:'C:\Users\test_user\Documents\app_test\env'
我知道 Python 路径在系统路径环境设置中,但不是专门针对用户的(不知道这是否有区别?)。
我还尝试使用 powershell 和重新安装来卸载 virtualenv,但结果相同。
关于在哪里寻找解决这个问题的任何想法?
当我使用 venv python 包创建新项目和虚拟环境时,VSCode 无法识别新的虚拟环境。我遵循以下说明:
https://code.visualstudio.com/docs/python/environments
我在VSCode集成终端中使用的命令是:
python -m venv .venv
我使用的终端是PowerShell 7,但我也尝试了CMD终端。
运行此命令后,.venv 文件夹在工作区上创建得很好,我在终端上检查了它的行为。
我尝试使用 conda 包管理器创建 venv 并且 VSCode 可以识别它。问题仅出在 venv Python 包上。
我还尝试了另一个Python版本来创建venv,但问题仍然存在。
我读过这个问题:
如何在 Visual Studio Code 中设置 Python 虚拟环境?
我知道如何手动添加环境,但我希望 VSCode 能够自动识别我的环境。
我将这些行添加到 settings.json (首选项):
"python.venvPath": "~/.venv",
"python.venvFolders": [
"~/.venv/Scripts"
]
Run Code Online (Sandbox Code Playgroud)
我使用 VSCode 集成终端手动激活 venv。
问题仍然没有解决。
这是我的问题的屏幕截图:

我知道如何手动添加环境,但我希望它是自动的。
我在另一台电脑上尝试了 VSCode,并且成功了;除了 venv 的存在之外,它不需要做任何事情。
VSCode 版本:1.58.0 Python 扩展版本:v2021.6.944021595
我正在尝试创建一个 devcontainer.json ,它将创建一个 Python 虚拟环境并立即在终端中激活它。
我使用 postCreateCommand 创建环境,这似乎有效:
"postCreateCommand": "python3 -m venv .venv",
Run Code Online (Sandbox Code Playgroud)
但我还没弄清楚如何让终端始终激活它。我尝试添加此设置:
"settings": {
"python.terminal.activateEnvInCurrentTerminal": true
}
Run Code Online (Sandbox Code Playgroud)
以及 post* 命令:
"postAttachCommand": ". .venv/bin/activate",
"postStartCommand": ". .venv/bin/activate",
"postCreateCommand": ". .venv/bin/activate",
Run Code Online (Sandbox Code Playgroud)
他们似乎无法可靠地激活它。我认为postAttachCommand有时有效,但并非总是如此。
python-venv ×10
python ×8
pip ×2
python-3.x ×2
upgrade ×2
anaconda ×1
dockerfile ×1
linux ×1
linux-distro ×1
python-3.8 ×1
virtualenv ×1