Python版本+虚拟环境管理:Conda+Pipenv

前言:一般情况下,为了方便管理,通常一个python项目搭配一个虚拟环境,对应一个python版本。但是有时候,我们需要对项目的python版本升级,框架版本升级,这样不可避免的就需要两套环境,因为升级、修改、测试与现有系统的功能开发肯定是齐头并进的。那么随意切换环境就很有必要了。
pipenv可以通过Pipfile文件方便的管理项目所需要的安装包,但它只能为一个项目创建一个虚拟环境。conda可以任意创建环境,但在项目包管理方面却没有那么方便。那如果将conda和pipenv结合起来,使用各自的优势,那么就可以很方便地为一个项目创建多个环境了,可随意切换,而不会出现覆盖的情况。

1. 使用conda create 为项目创建不同python版本的环境

conda create -n env1_name python=3.6
conda create -n env2_name python=3.10

2.设置项目的虚拟环境目录

cd proj_name
# 激活虚拟环境
conda activate env1_name
# 设置WORKON_HOME,将其设置成env1_name的虚拟目录
conda env config vars set WORKON_HOME=/path/to/env1_name_virtual_path\

i.e: 
   conda env config vars set WORKON_HOME=/home/shelly/anaconda3/envs/env1_name

#设置完成之后,需要重新激活环境才生效
conda activate env1_name

3.设置PIPFILE(optional)

默认是项目下的PIPFILE。如果要测试不同的python版本,然后里面的包的版本也各不相同,可以设置不同Pipfile文件。如果Pipfile不是在当前项目的目录下,设置到其它目录,则pipenv的当前目录也会改变,变成Pipfile所在的目录.

i.e: 比如之前是Python3.6,Django2.2,現在項目需要升級到Python3.10,Django3.2,為保證兩個版本在一段時間内可以同時運行。可以在項目下再創建一個Pipefile_3.10的文件,copyPipfile,改變一些pakg的版本。然後在另外一個虛擬環境中,將PIPEFILE的環境變量設置成Pipfile_3.10.這樣,在pipenv install的時候,它會重新生成Pipfile_3.10.lock的lockfile文件

conda env config vars set PIPENV_PIPFILE=/mnt/d/H.H/private_code/envtest/Pipfile

设置完环境变量后,记得需要重新激活环境生效:conda activate venv_name

4、在虛擬環境下安裝pipenv

conda install pipenv

5.再env1_name虚拟环境下,创建pipenv的虚拟环境

pipenv install --python /home/shelly/anaconda3/envs/v2_env/bin/python

在使用pipenv install 之前,可以使用pipenv --venv确认一下虚拟环境,如果没设置,确认一下WORKON_HOME环境变量。使用--python指定python解释器。

不要用sudo,sudo会使虚拟路径又变到系统的虚拟路径去

6.進入虛擬環境

先確保已激活conda的虛擬環境
然後在conda的虛擬環境下,使用pipenv shell 進入pipenv的虛擬環境

pipenv shell

你可能感兴趣的:(Python版本+虚拟环境管理:Conda+Pipenv)