标签: python-venv

为什么'python3 -m venv myenv'将旧版本的pip安装到myenv中,而不是任何版本的pip,我可以在系统的任何地方找到它?

这不会导致我无法通过激活虚拟环境和运行来解决任何问题pip install -U pip,但我总是想知道旧版本的pip来自哪里.

我正在使用OS X 10.7.5.当我使用pyvenv-3.4 myenv或创建虚拟环境时python3 -m venv myenv,安装在虚拟环境中的pip版本是6.0.8,但我已将全局pip升级到6.1.1.

这是一个终端会议,展示了我的意思:

$ python3 -m venv myenv
$ myenv/bin/pip -V
pip 6.0.8 from /Users/dust/Desktop/myenv/lib/python3.4/site-packages (python 3.4)
Run Code Online (Sandbox Code Playgroud)

这是我想要发生的事情:

$ source myenv/bin/activate
(myenv)$ pip -V
UPDATED SYSTEM VERSION HERE WOULD BE NICE
Run Code Online (Sandbox Code Playgroud)

除了在虚拟环境中创建的内容之外,我无法在其他任何地方找到pip 6.0.8.

以下是我用来尝试解决这些问题的各种命令的输出:

$ which pip
/Library/Frameworks/Python.framework/Versions/3.4/bin/pip

$ which pip3
/Library/Frameworks/Python.framework/Versions/3.4/bin/pip3

$ pip -V
pip 6.1.1 from /Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages (python 3.4)

$ pip3 -V
pip 6.1.1 from /Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages (python 3.4)
Run Code Online (Sandbox Code Playgroud)

我甚至尝试使用find:

$ find / -type …
Run Code Online (Sandbox Code Playgroud)

python pip python-venv python-3.4

13
推荐指数
1
解决办法
1378
查看次数

如何正确使用 Pyenv 和 venv?

文章阅读:

Python的虚拟环境:入门

Pyenv - 为特定项目安装多个 Python 版本

如何管理多个 Python 版本和虚拟环境

假设我们有这些目录:

 ~/Projects/PyA : it'll use Python 3.4.3 with Django 2.0
 ~/Projects/PyB : it'll use Python 3.5.1 with Django 2.1
 ~/Projects/PyC : it'll use Python 3.5.6 with Django 2.2
 ~/Projects/PyD : it'll use Python 3.2 with python-igraph
Run Code Online (Sandbox Code Playgroud)

首先,我们安装所需的 Python 版本:

$ pyenv install 3.4.3
$ pyenv install 3.5.1
$ pyenv install 3.5.6
$ pyenv install 3.2
Run Code Online (Sandbox Code Playgroud)

我的疑惑从这里开始:

我应该这样做吗?

$ cd ~/Projects/PyA && pyenv local 3.4.3 && python3.4 -m venv …
Run Code Online (Sandbox Code Playgroud)

python python-venv pyenv

13
推荐指数
2
解决办法
5604
查看次数

“venv activate”不会改变我的Python路径

我创建了一个虚拟环境;假设 test_venv,我激活它。一切成功。

然而,Python 解释器的路径不会改变。我已经在下面说明了这种情况。

为了澄清起见,python 路径应该是~/Desktop/test_venv/bin/python.

>>> python3 -m venv Desktop/test_venv

>>> source Desktop/test_venv/bin/activate

(test_venv) >>> which python
/usr/bin/python 
Run Code Online (Sandbox Code Playgroud)

python virtualenv python-3.x python-venv

13
推荐指数
2
解决办法
9432
查看次数

将 Poetry 与 PyEnv 一起使用并遇到 Python 版本问题

我正在使用 WSL2 Ubuntu。我一直在学习使用 Fastapi 进行后端 API 开发的课程。我相信我的 Ubuntu 默认 python 是 3.8。我正在尝试使用 python 3.10.0 进行开发。我做了以下事情:

\n
    \n
  1. pyenv安装3.10.0
  2. \n
  3. cd 到我的项目文件夹和 pyenv local 3.10.0 (创建包含 3.10.0 的 .python-version 文件)
  4. \n
  5. 诗歌 shell(这会创建一个 .venv 文件夹,并且所有依赖项都会在开发过程中添加到那里)。Bash 提示符中有 (.venv)。
  6. \n
  7. python --version 显示 3.10.0 作为当前版本
  8. \n
\n

我的问题是,当我查看 .venv/bin 文件时,所有符号链接都显示 python 3.8。

\n
drwxr-xr-x 2 mryan mryan 4096 Feb  1 23:12 .\ndrwxr-xr-x 4 mryan mryan 4096 Feb  1 23:12 ..\n-rw-r--r-- 1 mryan mryan 2152 Feb  1 23:12 activate\n-rw-r--r-- 1 mryan mryan 1444 Feb …
Run Code Online (Sandbox Code Playgroud)

python ubuntu python-venv pyenv

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

如何让pip将软件包安装到虚拟环境中?

在Windows 8上,我有一个Python 3项目的以下结构:

../Project/
../Project/app/app.py
../Project/app/setup.py
Run Code Online (Sandbox Code Playgroud)

从app文件夹中,我调用以下命令来创建并进入虚拟环境:

pyvenv.py venv
cd venv\Scripts
activate.bat
cd ../..
Run Code Online (Sandbox Code Playgroud)

现在我想将Nose单元测试框架安装到我的虚拟环境中:

pip install nose
Run Code Online (Sandbox Code Playgroud)

...并且Nose被安装到全局文件夹中(在我的例子中,C:\ Python33).

当我调用时python setup.py install,我的自定义模块安装到虚拟环境中.为什么PIP不这样做呢?

python pip python-3.x python-venv

12
推荐指数
1
解决办法
3618
查看次数

Ansible使用venv模块创建virtualenv

如何使用Ans3使用venvPython3标准库中的模块创建virtualenv ?

手动,人们会这样做来创建一个venv:

python3 -m venv <venv-name>
Run Code Online (Sandbox Code Playgroud)

我如何使用Ansible执行此操作?

python-3.x ansible python-venv

12
推荐指数
2
解决办法
8986
查看次数

删除python3中使用venv创建的虚拟环境

如何删除使用创建的虚拟环境

python3 -m venv <name>
Run Code Online (Sandbox Code Playgroud)

我可以删除目录吗?

这似乎是谷歌搜索应该轻松回答的问题,但我只找到了删除用virtualenv或创建的环境的答案pyvenv.

python python-3.x python-venv

12
推荐指数
3
解决办法
3万
查看次数

pyvenv.cfg 中的 Venv 主页键

出于持续集成的目的,我使用以下内置 py3.6 venv 命令(不要与 virtualenv 混淆)(请参阅pep 405)。

python -m venv --system-site-packages --without-pip <ENVNAME>
Run Code Online (Sandbox Code Playgroud)

我发现它工作得很好,我立即获得了一个环境。

但是,.... venv 会生成一个 pyvenv.cfg 文件,如下所示:

home = absolute/path/to/prefix/of/interpreter/which/ran/venv
include-system-site-packages = true
version = <interpreter python version>
Run Code Online (Sandbox Code Playgroud)

这个文件包含非常重要的home键,它指的是创建这个venv的原始基础python。非常重要的是,无效的主页键会导致在基本解释器中找不到其库的 python 进程崩溃

现在我想将这个“经过测试的绿色”venv + 其基础 python 部署到生产机器上。我不想在生产系统上重建它,而只是将它复制到那里。

不用说,在 CI 工具上创建的主页绝对路径在生产机器上无效,所以我需要编辑 pyvenv.cfg 文件主页键,一切都像魅力一样工作。

这种文件操作是我真正想避免的步骤,因为我想生成一个只需要复制、激活和调用(标准方式)的工件。

我试图将 %xyz%、$xyz 甚至 configParser %(xyz)s 放在原始文件上,但这些都没有解决。我还尝试在那里使用相对路径,但该路径是相对于工作目录的,我不想强​​制生产系统从固定工作目录调用我的工件。

除了丑陋的 pyvenv.cfg 操作之外,还有其他解决方案吗?

python-3.x python-venv

12
推荐指数
1
解决办法
5692
查看次数

激活python虚拟环境如何修改sys.path?

我使用以下方法创建了我的 python 虚拟环境:

python3 -m venv venv3
Run Code Online (Sandbox Code Playgroud)

激活,我source venv3/bin/activate

venv3/bin/activate 似乎没有那么复杂:

# This file must be used with "source bin/activate" *from bash*
# you cannot run it directly

deactivate () {
    # reset old environment variables
    if [ -n "$_OLD_VIRTUAL_PATH" ] ; then
        PATH="$_OLD_VIRTUAL_PATH"
        export PATH
        unset _OLD_VIRTUAL_PATH
    fi
    if [ -n "$_OLD_VIRTUAL_PYTHONHOME" ] ; then
        PYTHONHOME="$_OLD_VIRTUAL_PYTHONHOME"
        export PYTHONHOME
        unset _OLD_VIRTUAL_PYTHONHOME
    fi

    # This should detect bash and zsh, which have a hash command that must
    # be …
Run Code Online (Sandbox Code Playgroud)

python bash python-venv

12
推荐指数
2
解决办法
2427
查看次数

Python主要版本升级后自动将软件包重新安装到虚拟环境中

我的磁盘上有几个虚拟环境(几十个),由venvPython 3.6 模块制作。现在我匆忙升级到 Ubuntu 19.10,后来才注意到 Ubuntu 19.10 根本不可用 3.6 从公认的来源。通过定位在我的主目录下并在包含的文件夹上运行,我设法升级了这些虚拟环境的Python 版本bin/python3python3.7 -mvenv --upgrade

现在,虽然python3.7 -mvenv --upgrade在虚拟环境中升级 Python,但lib/python3.7/site-packagesvenv. 我想我可以通过安装Python 3.6,已经这样做了pip freeze荷兰国际集团从需求venv,然后VENV升级到Python 3.7,pip install -r荷兰国际集团-只要有Python的3.6安装可用于我的新的操作系统。

有没有其他方法可以以相当自动化的方式(也许主要是pip freeze使用旧lib/python3.6目录)来做到这一点,而我不必从源代码安装 Python 3.6、使用 conda 或从一些随机 PPA 安装 3.6?我想整体升级所有环境,以便将来当我需要对随机环境执行某些操作时,它将继续使用 Python 3.7。

python python-3.x python-venv

11
推荐指数
1
解决办法
548
查看次数

标签 统计

python-venv ×10

python ×8

python-3.x ×6

pip ×2

pyenv ×2

ansible ×1

bash ×1

python-3.4 ×1

ubuntu ×1

virtualenv ×1