【一】使用场景
- 写了个项目
- 使用djagno2.x版本---> django2.x装在了解释器上
- 后来又有个项目
- 使用使用djagno3.x版本 ---> django3.x装在解释器上
- 以后要打开第一个项目运行
- 需要卸载django3,安装django2
- 有种方式解决这个问题
- 每个项目自己有个环境,装的模块,都是这个项目自己的
-
虚拟环境是一个独立于系统环境的Python运行环境,它可以在同一个系统中创建多个相互隔离的Python环境。
-
虚拟环境的使用场景:
-
项目隔离:
-
当您需要在同一台机器上同时开发多个项目时,每个项目都可能依赖不同版本的软件包和库。
-
使用虚拟环境可以为每个项目创建独立的Python运行环境,确保项目之间不会相互干扰并避免版本冲突。
-
-
版本隔离:
-
在同一个项目中,不同的版本可能需要不同的软件包和库。
-
通过虚拟环境,您可以针对不同的项目版本创建独立的Python环境,并在每个环境中安装所需的软件包和库,从而实现不同版本的隔离管理和控制。
-
-
快速切换:
-
使用虚拟环境可以方便地进行项目之间的切换。
-
只需激活对应项目的虚拟环境,系统会自动切换到该环境,并加载该环境中安装的软件包和库。
-
这样,您就可以轻松地在不同的项目中切换,并运行适合该项目需求的Python版本和软件包。
-
-
环境复制:
- 通过虚拟环境,您可以快速生成一份项目的完整环境配置文件。
- 这样,您可以将这个环境配置文件分享给其他开发人员,在其他机器上也能够轻松地创建同样的Python环境,确保项目的开发和部署一致性。
-
-
总之
- 虚拟环境提供了一种灵活、隔离和可定制化的方式来管理和控制Python项目所需的运行环境。
- 它能够解决不同项目之间版本依赖的问题,方便多项目并行开发,并且能够提高代码的可移植性和可维护性。
【二】解决办法
- Virtualenv
- 第三方的,用的多
- pipenv
- 官方的
- 虚拟环境的创建和管理有多种工具可供选择
- 其中最常用的两种是Virtualenv和Pipenv。
【1】Virtualenv(第三方库):
-
Virtualenv是一个用于创建和管理Python虚拟环境的第三方库。
-
它可以在Python2和Python3中使用,并且与pip搭配使用非常方便。
-
以下是使用Virtualenv创建虚拟环境的步骤:
-
安装Virtualenv:您可以使用pip来安装Virtualenv,命令如下:
pip install virtualenv
- 创建虚拟环境:在项目文件夹中,使用下面的命令创建一个名为"myenv"的虚拟环境:
virtualenv myenv
- 激活虚拟环境:在Windows系统中,可以使用以下命令激活虚拟环境:
myenv\Scripts\activate
在类Unix系统(如Linux和MacOS)中,可以使用以下命令激活虚拟环境:
source myenv/bin/activate
- 安装依赖包:在激活的虚拟环境中,可以使用pip来安装项目所需的依赖包。例如:
pip install django==2.0
- 退出虚拟环境:您可以使用以下命令退出虚拟环境:
deactivate
【2】Pipenv(官方工具):
-
Pipenv是Python官方推荐的虚拟环境管理工具,它集成了pip、venv和其他功能,并提供更便捷的方式来创建和管理虚拟环境。
-
以下是使用Pipenv创建虚拟环境的步骤:
-
安装Pipenv:您可以使用pip来安装Pipenv,命令如下:
pip install pipenv
- 创建虚拟环境:在项目文件夹中,使用下面的命令创建并激活虚拟环境:
pipenv shell
- 安装依赖包:在激活的虚拟环境中,可以使用Pipenv来安装项目所需的依赖包。例如:
pipenv install django==3.0
- 注意:
- Pipenv会自动将依赖包保存到Pipfile文件中,并生成一个对应的Pipfile.lock文件来锁定依赖包的版本。
- 退出虚拟环境:您可以使用以下命令退出虚拟环境:
exit
【3】总结:
- 无论是使用Virtualenv还是Pipenv,都可以解决多项目不同Python版本和依赖包的隔离问题。
- Virtualenv是第三方库,使用广泛且成熟稳定;
- 而Pipenv是Python官方推荐的工具,提供更便捷的方式来管理虚拟环境和依赖包。
【三】Virtualenv使用步骤
【1】Window 平台
(1)安装两个模块
- 第三方虚拟环境
Virtualenv
是一个第三方虚拟环境模块,安装它可以创建和管理Python的虚拟环境。- 使用以下命令安装
Virtualenv
:
pip3.9 install virtualenv
- 增加模块,使虚拟环境在win上更好用
virtualenvwrapper-win
是一个增强模块,使得在Windows上使用虚拟环境更方便。- 使用以下命令安装
virtualenvwrapper-win
:
pip3.9 install virtualenvwrapper-win
(2)配置环境变量
-
【控制面板】>【系统和安全】>【系统】>【高级系统设置】>【环境变量】>【系统变量】>【点击新建】>【填入变量名与值】>【确定】
-
变量名中填入
"WORKON_HOME"
-
变量值中填入自定义的存放虚拟环境的绝对路径,例如
"E:\Python39\Lib\site-packages\virtualenv"
-
例如:
WORKON_HOME: E:\Python39\Lib\site-packages\virtualenv
(3)同步配置信息
- 找到Python3的安装目录,然后进入Scripts文件夹,双击运行virtualenvwrapper.bat文件。
- 例如
E:\Python39\Scripts
- 例如
- 通过运行该脚本,可以同步配置Virtualenv的使用环境和命令。
- 检验是否配置成功
C:\Users\Administrator>workon
Pass a name to activate one of the following virtualenvs:
==============================================================================
activation
app_data
config
create
discovery
run
seed
util
__pycache__
(4)重新打开命令窗口,可以执行下面的命令
- 创建虚拟环境到配置的WORKON_HOME路径下,一旦进入到虚拟环境,所有安装模块操作,都是操作虚拟环境
[1]选取默认Python环境创建虚拟环境
- 默认以 python 这个解释器来创建虚拟环境
mkvirtualenv 虚拟环境名称
- 基于特定Python版本的虚拟环境(如Python 2或Python 3.8):
- 创建虚拟环境并进入虚拟环境
mkvirtualenv -p python2 虚拟环境名称
mkvirtualenv -p python3.8 虚拟环境名称
[2]查看已有的虚拟环境
workon
[3]使用某个虚拟环境
workon 虚拟环境名称
[4]进入|退出 该虚拟环境的Python环境
-
进入虚拟环境的Python解释器:
python
-
退出虚拟环境的Python解释器:
exit()
- 或者直接按下Ctrl+Z键。
[5]为虚拟环境安装模块
pip或pip3 install 模块名
[6]退出当前虚拟环境
deactivate
[7]删除虚拟环境(删除当前虚拟环境要先退出)
- 直接删文件夹
rmvirtualenv 虚拟环境名称
【2】Mac/Linux平台
(1)安装模块
- 首先,您需要安装两个模块,即
virtualenv
和virtualenvwrapper
。 - 这些模块可以让您创建和管理虚拟环境。
- 您可以在终端中运行以下命令进行安装:
pip3 install -i https://pypi.douban.com/simple virtualenv
pip3 install -i https://pypi.douban.com/simple virtualenvwrapper
(2)复制virtualenvwrapper.sh到/usr/local/bin路径下
- 接下来,您需要找到名为
virtualenvwrapper.sh
的文件,并将其复制到/usr/local/bin
路径下。请注意,该文件用于刷新自定义配置。 - 在MacOS上
- 您可能会在
/Library/Frameworks/Python.framework/Versions/版本号/bin
路径下找到该文件;
- 您可能会在
- 在Linux上
- 它可能位于
/usr/local/bin
、~/.local/bin
或/usr/bin
路径下。
- 它可能位于
- 建议将
virtualenvwrapper.sh
文件复制到/usr/local/bin
路径下- 即使它实际上位于其他路径。
-
如果不在
/usr/local/bin
目录,如在~/.local/bin 目录
,则复制一份到/usr/local/bin
目录sudo cp -rf /路径/virtualenvwrapper.sh /usr/local/bin
(3)配置环境变量
-
在
~/.bash_profile
文件中进行配置。默认情况下,virtualenvwrapper
将虚拟环境存放在~/.virtualenvs
路径下。 -
可以根据需要自定义虚拟环境的存放路径,将以下内容添加到
~/.bash_profile
文件中(如果需要自定义):WORKON_HOME=自定义存放虚拟环境的绝对路径
-
在配置文件中指定解释器的位置是重要的。
- 使用以下命令将解释器位置指定为
VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3
-
指定
virtualenvwrapper.sh
文件的位置。- 您可以使用以下命令进行指定:
source /usr/local/bin/virtualenvwrapper.sh
(4)在终端让配置生效
- 完成以上配置后,需要在终端中运行以下命令,以使配置生效
source ~/.bash_profile
【四】环境变量详解
【1】什么是环境变量
我们在命令行中,执行一个命令,写命令名字执行
- 当前路径下有这个可执行文件
- 这个可执行文件,在环境变量中
- 环境变量是操作系统中用于存储各种配置信息的一种机制。
- 它们是一组键值对,用于指定系统和应用程序的行为。
- 在命令行中执行命令时,系统会根据环境变量中的路径去查找可执行文件。
【2】加环境变量的目的
- 在任意路径下敲 可执行文件都可以,原因是当前敲的可执行文件路径在环境变量中
- 加入环境变量的目的是为了能够在任意路径下执行某个可执行文件,而不需要指定完整的文件路径。
- 通过将可执行文件的路径加入环境变量,可以使得系统在搜索可执行文件时在环境变量中进行查找,而不仅仅局限于当前路径。
- mac平台,需要用命令行操作,文件
- 用户环境变量:.bash_profile
【3】环境变量的两层
- 用户环境变量:只有当前用户生效
- 系统环境变量:所有用户都生效
- 用户环境变量只对当前用户有效。
- 当某个用户登录系统后,系统会加载该用户的用户环境变量,从而使得用户在任意路径下都可以使用与其相关的环境变量。
- 系统环境变量对所有用户都有效。
- 无论是哪个用户登录系统,系统都会加载系统环境变量,以供所有用户使用。
- 系统环境变量通常是系统管理员设置的,用于指定全局的系统行为和配置信息。