Python 虚拟环境

邱秋 • 2019年11月04日 • 阅读:238 • 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

我,秦始皇,打钱!