Python 虚拟环境
虚拟环境优点
- 使不同应用开发环境相互独立
- 环境升级不影响其他应用,也不会影响全局的python环境
- 防止出现包管理混乱及包版本冲突
创建虚拟环境
python3.3 之后venv已经作为标准库嵌入到了python中,而之前的版本需要借助virtualenv
这个第三方库来实现。
在终端中使用python -m venv -h
可以显示venv工具的用法。
介绍的两个选项:
--system-site-packages代表使用全局环境中的第三方库(否则虚拟环境直接是纯洁的第三方库)
--without-pip代表不安装pip(一般都是要装的,所以默认就行)
所以正常创建虚拟环境指令如下:python -m venv 虚拟环境名称
$ cd ~
$ python -m venv .envapp
这样就在当前 目录创建了虚拟环境 .envapp
目录分析
进入 .envapp 目录
Lib查看目录结构:无标准库,有第三方库site-packages ,site-packages查看目录结构:只有类似pip的少量包,是纯净的
Windows 则会有 Scripts
目录,Linux和Mac 则会有 bin
目录。存放 pip,python, activate 等可执行文件。
激活虚拟环境
For Windows:
进入Script 目录执行 activate 即可
~\.envapp\Scripts>activate
可以看到前面有(.envapp)的前缀,表明现在是在该虚拟环境下操作的
(.envapp) ~\Scripts>
有激活也有关闭,以下可以关闭虚拟环境
~\.envapp\Scripts>deactivate
For Linux:
进入bin 目录执行
~\.envapp\bin>source activate
可以看到前面有(.envapp)的前缀,表明现在是在该虚拟环境下操作的
(.envapp) [root@centos bin]#
复制虚拟环境
激活虚拟环境之后,导出虚拟环境依赖
#windows
(.envapp) ~\.envapp\Scripts>pip freeze >requirements.txt
#linux
(.envapp) [root@centos bin] pip freeze >requirements.txt
激活虚拟环境之后,安装导出的依赖
pip install -r requiremnets.txt
Conda
for window
curl https://repo.anaconda.com/miniconda/Miniconda3-latest-Windows-x86_64.exe -o miniconda.exe
start /wait "" miniconda.exe /S
del miniconda.exe
for linux
mkdir -p ~/miniconda3
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh
bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
rm -rf ~/miniconda3/miniconda.sh
~/miniconda3/bin/conda init bash
~/miniconda3/bin/conda init zsh
source ~/.zshrc
for mac
mkdir -p ~/miniconda3
curl https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-arm64.sh -o ~/miniconda3/miniconda.sh
bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
rm -rf ~/miniconda3/miniconda.sh
~/miniconda3/bin/conda init bash
~/miniconda3/bin/conda init zsh
source ~/.zshrc