标签: python-venv

用于Linux的Anaconda 3有没有ensurepip?

这是我的环境:

  • 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 python-venv anaconda

9
推荐指数
1
解决办法
1988
查看次数

python 3.8 venv 缺少激活命令

我在用户的主目录下编译了 Python 3.8.1

configure --prefix=/home/a_user/python3.8 --enable-shared
Run Code Online (Sandbox Code Playgroud)
  1. 当我尝试使用 venv 时,我得到:
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)
  1. test_env 已创建但不完整:
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)
  1. 确保pip确实存在:
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)

python python-venv python-3.8

9
推荐指数
1
解决办法
4948
查看次数

virtualenv 激活脚本丢失

我已经在 Linux 上安装了 python 和虚拟环境,但是每次我尝试创建新的虚拟环境时,bin 文件夹都会丢失许多文件,例如激活脚本。只有运行以下命令才能成功:

sudo virtualenv myvenv
Run Code Online (Sandbox Code Playgroud)

如果我只运行virtualenv myvenvbin文件夹是不完整的。

我还设法创建了一个虚拟环境python -m venv myvenv

为什么会发生这种情况我不想使用python3,只想使用python。有任何想法吗?

python linux virtualenv python-venv

8
推荐指数
1
解决办法
1万
查看次数

How do I list my pip-installed packages inside a venv?

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 …

python pip python-venv

8
推荐指数
1
解决办法
8280
查看次数

如何在 Dockerfile 中的 venv 中升级 pip?

在跑步的时候

$ 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 upgradeDockerFile, 中添加命令,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)

python pip python-venv dockerfile

8
推荐指数
1
解决办法
2万
查看次数

删除和/或更新系统的Python时虚拟环境的后果

编辑清晰度这个问题是关于venv的,它经常与virtualenv混淆。

删除系统的Python安装(使用该源在系统上创建虚拟环境所使用的源)有什么后果venv

最终,我想做的是删除3.7安装并在发行3.8时安装3.8,但是我不确定虚拟环境与系统环境之间的连接强度。

提出此问题时可能相关的一些系统详细信息:

  • 操作系统= Red Hat Enterprise Linux 7
  • 3.7是从Python.org上的源代码安装的,而不是rh-Pythonx.x yum存储库中的packge。
  • Python 3.7已安装到默认位置, /usr/local/bin/python3.7
  • /usr/local/bin/python3 是一个链接 /usr/local/bin/python3.7

鉴于上述细节,我的印象是Python的3.8将安装到下/usr/local/bin/python3.8python3然后将指向该版本。

虚拟环境内部是否有足够的空间成为自己稳定的3.7环境?还是会崩溃,尝试引用不再存在的系统安装?

tl; dr: 从不再存在的Python源创建的所有虚拟环境中发生了什么?

python upgrade python-venv virtual-environment

8
推荐指数
1
解决办法
508
查看次数

升级到 Ubuntu 20.04 后,python 3.7 venv 损坏

我刚刚升级到 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

8
推荐指数
1
解决办法
3563
查看次数

Python venv env 失败 - [WinError 2] 系统找不到指定的文件

我在 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,但结果相同。

关于在哪里寻找解决这个问题的任何想法?

python python-3.x python-venv

8
推荐指数
6
解决办法
8704
查看次数

VSCode 无法识别 venv

当我使用 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

python python-venv visual-studio-code

8
推荐指数
1
解决办法
1万
查看次数

如何在开发容器中的每个新终端中激活 venv?

我正在尝试创建一个 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 vscode-devcontainer

8
推荐指数
1
解决办法
1082
查看次数