Conda 使用笔记
使用 Conda 管理 Python 环境
如何利用 conda 来管理 Python 的开发环境。
安装
安装的时候最好选择将 anaconda 加入到环境变量中,这样可以直接使用 `conda` 命令来管理包,而不需要增加额外的配置。
国内源镜像
国内使用的话,镜像就还是用 清华大学开源软件镜像站 ,按步骤安装:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
若想查询对应的配置,则使用 conda config --show
命令进行查看。
就可以了,如果是 conda
不包含的库的话,还是需要使用 pip
命令进行安装的,可以同样配置成清华源。
# 临时使用
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package
# 设为默认值
pip install pip -U
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
# 但是这个需要 pip 版本在 10.0.0 以上,如果低的话,可以临时升级
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pip -U
包管理
conda list #查看所有的包
conda install package_name #安装包
conda remove package_name #移除包
conda update package_name #升级包
conda search search_term #模糊查询包名
conda update conda #更新 conda 本身
conda update anaconda #更新 anaconda
conda update python #更新 Python
环境管理
# 查看环境
conda env list
# 创建环境
conda create -n <env_name> python=<python_version>
# 进行环境
conda activate <env_name>
# 导出环境配置
conda env export > environment.yml
# 依据 yml 文件创建环境
conda env create -f environment.yml
# 依据 yml 更新环境
conda env update -f environment.yml
# 离线创建环境
conda create -n <env_name> --offline
# 复制环境
conda create -n <env_name_new> --clone <env_name> # 如果两个环境名一致,会重新安装环境,用来解决环境名不在 evn list 中的问题。
# 删除环境
conda remove -n <env_name> --all
matplotlib 图片中文乱码问题
使用 Anaconda 进行数据处理后生成图片的时候,如果不指定对应字体会导致中文乱码,可以通过下面的方案进行解决。
设置对应的中文字体:
from pylab import mpl
# 指定默认字体:解决 plot 不能显示中文问题
mpl.rcParams['font.sans-serif'] = ['Microsoft YaHei']
# 解决保存图像是负号'-'显示为方块的问题
mpl.raParams['axes.unicode_minus'] = False
Mac 下查找字体
在设置的时候,除了宋体外,并不清楚系统中都有什么字体可以使用,可以通过 font_manager
将所有 matplotlib 能使用的字体打印出来。
from matplotlib import font_manager
a = sorted([f.name for f in font_manager.fontManager.ttflist])
for i in a:
print(i)
如果 matplotlib 中无中文字体,则需要下载对应的 tff 字体只在到 matplotlib/mpl-data/fonts/tff 中,然后使用 font_manager 重新编译一下。
from matplotlib.font_manager import _rebuild
_rebuild()
之后就可以利用上面的方法,将使用新的字体了。
plt.rcParams['font.sans-serif'] = ['STFangsong']
plt.rcParams['axes.unicode_minus'] = False
conda activate 在 Tmux 中不生效
今天重新看了一下 conda 环境的问题,之前的理解是错误的,因为默认的环境变量配置在不启动 Tmux 的时候是能正常使用的,现在看主要原因是在启动 Tmux 的过程中。
重新检查了一下启动前后的环境变量,发现在启动 Tmux 之后,conda 的相关内容被转移到最后的,导致前面的环境变更覆盖掉了 conda 的环境变量。
正确的方法应该是在 $HOME 下新增一个 .zprofile 文件,然后再在文件中增加下面的内容:
if [ -x /usr/libexec/path_helper ]; then
PATH="" # <- ADD THIS LINE (right before path_helper call)
eval `/usr/libexec/path_helper -s`
fi
重新加载一下配置文件,就可以正常的使用 conda 命令切换环境了。
将 Conda 环境调整为 32 位环境
在编译 Windows 下的执行工具时,需要针对 Python 的版本进行编译,32 位仅能执行 32 位的程序,所以需要在编译前调完对应的环境位数。
set CONDA_FORCE_32BIT=1
然后再创建环境默认就是 32 位的 Python 了。如何不清楚当前环境具体的信息,可以通过 conda info
可查看该环境的详细信息。
conda 环境增加 ipykernel
-
在建立环境时,直接添加 ipykernel
conda create -n <env_name> python=<python_version> ipykernel
-
为已经创建好的环境,添加 ipykernel
conda install -n <env_name> ipykernel
-
将虚拟环境添加到 jupyterlab 中
-
env_name 虚拟环境的名称
-
display_name 虚拟环境的展示名
python -m ipykernel install -user --name <env_name> --display-name <display_name>
-