最近读了《自然语言处理实战》第一章,作者开发了一个称为nlpia自然语言库,主要用于下载一些数据集,同时为了配合本书的演示,nlpia仓库也引用了很多第三方库(比如nltk),并做了一些最佳实践。
折腾了很久,虽然最终没有完全安装成功(其本身的问题,具体见https://github.com/totalgood/nlpia/issues/43 ),但nlpia仓库的组织结构堪称典范,比如结合了conda、.travis.yml、pip、create_conda_environment.sh、anaconda-project.yml、install_nlpia_any_os.sh、.condarc,可以好好学习下。
1:conda推荐安装方式:
# make sure you're in the nlpia directory that contains `setup.py`
cd nlpia
# env 表示从一个environment.yml读取安装指令
conda env create -n nlpiaenv -f conda/environment.yml
# to get the latest version of pip
conda install -y pip
conda activate nlpiaenv
pip install -e .
pip install下的-e表示 Install a project in editable mode,这样在这个仓库下对nlpia库做的修改就能生效了。
2:pip安装方式:
pip install --upgrade pip
mkvirtualenv nlpiaenv
source nlpiaenv/bin/activate
pip install -r requirements.txt
pip install -e .
3:如果仅仅想使用nlpia包,一条命令就可以:
pip install nlpia
在这个过程中,又强化了conda的理解,整理如下。
1:包管理的一些命令:
# 显示conda版本
conda --version
# 显示目前存在的环境
conda env list
# 搜索numpy包
conda search numpy
# 安装特定包
conda install numpy=1.7.2 -y
# 移除某个包
conda remove numpy
# 在defaults channel下给base环境安装包
conda update -n base -c defaults numpy
2:环境管理的一些命令:
# 创建一个基于python 3.7版本的环境test
conda create --name test python=3.7
# 激活环境
conda activate test
# 切换到默认环境
donda deactivate
# 删除环境
conda env remove --name test
# 拷贝一个环境
conda create --name base2 --clone base
生成的环境目录,anaconda3/envs/test/lib/python3.7/site-packages
3:config管理:
# 显示所有的配置信息
conda config --show
# 显示所有的配置
conda config --describe
# config 子命令
conda config --get show_channel_urls
# 写到system下的.condarc文件
conda config --system
4:channel管理:
# 显示目前的channels
conda config --get channels
# 增加channels
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
# 删除channels
conda config --remove channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
conda config --add --help
channels的优先级很重要,可以配置.condarc文件修改顺序
channels:
- defaults
- conda-forge
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
ssl_verify: true
更多的参考见 https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/index.html