Dar*_*018 67 python-3.x python-venv
我的机器中有不同的 venv,其中有 python 3.10。
现在对于一个特定的项目,我意识到 python 3.10 不适合,因为一些库仍然不兼容。因此,当为新项目创建新的 venv 时,我想将 python 降级,比如降级到 3.8,仅针对这个特定的 venv。
我怎样才能做到这一点?我应该在终端上输入什么来执行此操作?
PS:我使用VS及其终端来创建venv
Emi*_*ter 56
自 Python 3.5 以来,管理虚拟环境的推荐方法是使用venvPython 标准库本身内的模块。
来源:https ://docs.python.org/3/library/venv.html#creating-virtual-environments
virtualenv这与 Python 标准库之外的第三方包不同。
来源: https: //pypi.org/project/virtualenv/
根据您的系统本身是否使用Python,更改系统Python版本可能会对系统稳定性造成危险。您的系统可能正好需要该版本的 Python。Ubuntu 也是如此。
在 Ubuntu 20.04 上测试
比降级或升级更安全的是在同一系统上安装其他版本的 Python。
例如,要安装 Python 3.9:
# Add the deadsnakes repository
me@mydevice:~$ sudo add-apt-repository ppa:deadsnakes/ppa
# Update package lists
me@mydevice:~$ sudo apt update
# Install Python 3.9
me@mydevice:~$ sudo apt install python3.9
Run Code Online (Sandbox Code Playgroud)
# Install the venv package for Python 3.9
me@mydevice:~$ sudo apt install python3.9-venv
# Make a folder for venv virtual environments
me@mydevice:~$ mkdir ~/.venvs
# Create a new venv virtual environment with Python 3.9 in it
me@mydevice:~$ python3.9 -m venv ~/.venvs/my-venv-name
# Activate the new venv
me@mydevice:~$ source ~/.venvs/my-venv-name/bin/activate
(my-venv-name) me@mydevice:~$
Run Code Online (Sandbox Code Playgroud)
# Check the Python version inside the venv:
(my-venv-name) me@mydevice:~$ python -V
Python 3.9.9
# Check the Pip version inside the venv:
(my-venv-name) me@mydevice:~$ pip3 --version
pip 21.2.4 from /home/me/.venvs/my-venv-name/lib/python3.9/site-packages/pip (python 3.9)
Run Code Online (Sandbox Code Playgroud)
(my-venv-name) me@mydevice:~$ deactivate
me@mydevice:~$
Run Code Online (Sandbox Code Playgroud)
# Check Python version:
me@mydevice:~$ python -V
Python 3.8.10
# Check the Pip version:
me@mydevice:~$ pip3 --version
pip 20.0.2 from /home/me/.venvs/my-venv-name/lib/python3.8/site-packages/pip (python 3.8)
Run Code Online (Sandbox Code Playgroud)
要安装更多 Python 版本,只需将版本号从 3.9 更改为您选择的版本(可从 deadsnakes 存储库中获取)。
csm*_*ter 42
假设您的系统中安装了不同版本的 Python。要检查,请使用以下命令进行检查:
> py --list
-3.10-64 *
-3.7-64
Run Code Online (Sandbox Code Playgroud)
您想在“test_env”目录中为 python 3.7 创建一个新的虚拟环境。运行以下命令:
> py -3.7 -m venv test_env
Run Code Online (Sandbox Code Playgroud)
然后通过在 Windows PowerShell 上运行以下命令来激活 test_env:
> .\test_env\Scripts\Activate.ps1
Run Code Online (Sandbox Code Playgroud)
或者Linux:
$ source test_env/bin/activate
Run Code Online (Sandbox Code Playgroud)
查看:
python --version
Python 3.7.0
Run Code Online (Sandbox Code Playgroud)
Nat*_*ncy 12
我相信单独使用不同 python 版本的最佳方法是pyenv ,管理虚拟环境可以使用pyenv-virtualenv来完成。
我认为Real Python 的这篇文章很好地解释了如何管理不同的 python 版本以及不同的虚拟环境。
对于后代,使用上面提到的工具,您可以执行以下操作(一旦安装了正确的 python 版本)
pyenv virtualenv <python_version> <environment_name>
# Then activate it
pyenv local <environment_name>
Run Code Online (Sandbox Code Playgroud)
现在您已经在该文件夹中创建了虚拟环境,因此您每次进入该文件夹时都应该拾取它。根据其文档,VSCode 也应该选择它。
PS:我认为这是一个很好的方法,因为它允许您使用单个工具管理 python 版本以及环境。每个版本仅在一个位置安装一次,这应该会有所帮助,因为它降低了复杂性。
小智 9
您可以同时安装多个Python版本,并且可以使用所需版本创建虚拟环境。确保您已经安装了所需的 python 版本,然后在创建虚拟环境时指定其位置:
virtualenv -p <path-to-new-python-installation> <new-venv-name>
Run Code Online (Sandbox Code Playgroud)
例子:
virtualenv -p C:\Users\ssharma\AppData\Local\Programs\Python\Python38\python.exe venv38
Run Code Online (Sandbox Code Playgroud)
这将创建一个名为 Python 3.8 的虚拟环境venv38。
您可以使用水蟒:
conda create -n mypython3.8 python=3.8
Run Code Online (Sandbox Code Playgroud)
只是为了你的炖菜里有足够的粥。
| 归档时间: |
|
| 查看次数: |
140228 次 |
| 最近记录: |