Jarvis' Blog (总有美丽的风景让人流连) 总有美丽的风景让人流连

Python 相关配置

2020-11-24
Jarvis
Post

提示

本文仅考虑 Python3.

1. 配置国内镜像

1.1 pip 清华镜像

(pypi 镜像每 5 分钟同步一次)

临时使用

1
2
3
4
# 清华源
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple <some-package>
# 阿里云源
pip install -i https://mirrors.aliyun.com/pypi/simple/ <some-package>

设为默认

1
2
3
4
5
6
# 升级 pip 到最新的版本 (>=10.0.0) 后进行配置
pip install pip -U
# 清华源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
# 阿里云源
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/

1.2 Conda 清华镜像

参考链接 https://mirror.tuna.tsinghua.edu.cn/help/anaconda/

临时使用

1
conda install -c https://mirrors.tuna.tsinghua.edu.cn/anaconda <package_name>

设为默认

Linux / Windows 系统: 在 ~/.condarc 中填入源. 可以从下面选择北外源或者清华源.

  • 北外源
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
channels:
  - defaults
show_channel_urls: true
channel_alias: https://mirrors.bfsu.edu.cn/anaconda
default_channels:
  - https://mirrors.bfsu.edu.cn/anaconda/pkgs/main
  - https://mirrors.bfsu.edu.cn/anaconda/pkgs/free
  - https://mirrors.bfsu.edu.cn/anaconda/pkgs/r
  - https://mirrors.bfsu.edu.cn/anaconda/pkgs/pro
  - https://mirrors.bfsu.edu.cn/anaconda/pkgs/msys2
custom_channels:
  conda-forge: https://mirrors.bfsu.edu.cn/anaconda/cloud
  msys2: https://mirrors.bfsu.edu.cn/anaconda/cloud
  bioconda: https://mirrors.bfsu.edu.cn/anaconda/cloud
  menpo: https://mirrors.bfsu.edu.cn/anaconda/cloud
  pytorch: https://mirrors.bfsu.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.bfsu.edu.cn/anaconda/cloud
  • 清华源
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
channels:
  - defaults
show_channel_urls: true
channel_alias: https://mirrors.tuna.tsinghua.edu.cn/anaconda
default_channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
  conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud

2. 创建虚拟环境

2.1 conda

首推的虚拟环境管理工具. 使用 conda 来安装包(而非 pip).
查找库的链接: https://anaconda.org/

注意 conda 源的python包和pip源的python包是不通用的, 有事可以混合安装, 但容易出现依赖错误.
(有时候涉及到一些C++库如cuda的时候, 或者一些只在pip中存在的库需要同时用两种工具安装包的时候, 可能会出现各种奇怪的依赖错误导致环境创建失败.)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 创建 conda 环境
conda create -n OpenCV-4.2.0-py3

# 激活 conda 环境
# For linux
source activate OpenCV-4.2.0-py3
# For windows
activate OpenCV-4.2.0-py3

# 在虚拟环境中安装 python 包
conda install numpy
# 虚拟环境中尽量不使用pip, 除非万不得已. pip和conda安装的包的兼容性很差.
pip install numpy

# 退出虚拟环境
# For linux
source deactivate
# For windows
deactivate

2.2 virtualenv

conda 安装环境不成功的第二选择.

virtualenv也是个python的第三方库, 用于管理虚拟环境, 但仍然使用pip来安装包.

1
2
3
4
5
6
7
8
9
10
11
# 需要先在默认环境中安装该库
pip install virtualenv

# 创建一个独立的 python 环境. 这样就在当前目录下创建了一个venv文件夹, 其中包含了一个最小的python
virtualenv venv

# 也可以指定 python 版本
virtualenv venv -p python3.6

# 激活环境
source venv/bin/activate

2.3 venv

提示

貌似不能指定 python版本, 所以暂不推荐, 这里只做记录

以编译OpenCV为例, 创建一个 Python 虚拟环境:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 创建虚拟环境所在的文件夹
mkdir ~/venv; cd ~/venv

# 创建名为 OpenCV-4.2.0-py3 的虚拟环境
python3 -m venv OpenCV-4.2.0-py3

# 以下可选, 为激活虚拟环境创建短命令
# echo "# Virtual Environment Wrapper" >> ~/.bashrc
# echo "alias workoncv-$cvVersion=\"source $cwd/OpenCV-$cvVersion-py3/bin/activate\"" >> ~/.bashrc
# 或者直接激活
source ~/venv/OpenCV-4.2.0-py3/bin/activate

# 在虚拟环境中安装python包
pip install numpy matplotlib

# 退出虚拟环境
deactivate

3. 环境的导出和安装

3.1 pip

1
2
3
4
5
# 导出库到文件
pip freeze > requirements.txt

# 从文件中安装库
pip install -r requirements.txt

3.2 conda

1
2
3
4
5
# 导出库到文件
conda list -e > requirements.txt

# 从文件中安装库
conda install --file requirements.txt

上面的安装方法仅限于常规安装. 有一些第三方channel和pip安装的库无法用此法安装, 只能导出. 为此, 我们可以选择导出整个环境.

1
2
3
4
5
# 导出环境到文件
conda env export > env.yml

# 从文件创建环境
conda env create -f env.yml

3. Python 基本库

3.1 文档

4. Python 第三方库

名称 安装方式 功能
tqdm conda install tqdm
pip install tqdm
提供进度条
numpy conda install numpy
pip install numpy
提供多维数组的计算, 底层用C语言实现, 保证了效率. 是大量科学计算库的依赖库.
matplotlib conda install matplotlib
pip install matplotlib
提供二维和三维的绘图功能
scipy conda install scipy
pip install scipy
提供基于numpy的科学计算/数值计算功能
提供scipy.ndimage进行高维图像/张量处理
pandas conda install pandas
pip install pandas
结构化数据处理库, 基于Series和DataFrame两个数据结构进行数据处理. 适用于多类型结构化的数据, 可以与Excel的操作模式进行类比.
opencv conda install opencv OpenCV C++ 的 Python 包装
skimage conda install scikit-image 用于图像处理的库, 部分功使用的是scipy.ndimage
tensorflow pip install tensorflow
pip install tensorflow-gpu
一个基于静态图/动态图的用于机器学习/深度学习的分布式框架, Python包装, 依赖于 cudatoolkit和cudnn
pytorch 见官网 一个基于动态图的用于机器学习/深度学习的框架, 依赖于 cudatoolkit 和 cudnn
cudatoolkit conda install cudatoolkit cuda 工具箱, 配合tensorflow/pytorch使用
cudnn conda install cudnn cudnn 工具箱, 配合tensorflow/pytorch使用, 依赖于 cudatoolkit
Sacred pip install sacred 实验工具, 用于配置, 组织, 记录和保证实验的可复现性. 鼓励实验的模块化和可配置性. 大量使用装饰器实现基本功能.
nibabel pip install nibabel 用于简单的医学图像读写
simpleitk conda install simpleitk -c simpleitk 强大的医学图像处理库, ITK C++ 的 Python 包装.

5. Python 编辑器/IDE

5.1 VSCode

链接: https://code.visualstudio.com/

介绍: 微软推出的多语言编辑器, 当然也支持 Python, 相比于大型 IDE, VSCode 是轻量级工具(但插件装多了也会变慢).

使用: 安装 VSCode, 从 VSCode 的插件市场安装 Python 插件

警告

避免使用默认的 python 语言解析服务器, 因为每次打开 VSCode 都要下载, 非常慢. 可以从插件市场安装微软提供的替代品 Pylance 插件.

5.2 PyCharm

链接: https://www.jetbrains.com/pycharm/

介绍: 功能强大的 Python IDE, 支持功能完善的智能感知, 并自动生成缺失的 API 接口文档. 支持远程ssh连接, 远程同步文件, 远程运行程序. 教育优惠可以免费试用专业版.


Content