前言
前言属于与内容无关的写作意图。要看正文,请直接跳转至本文主要内容。
很久不见。最近手里有很多事,比如,体检、装机、加班。再加上我现在为了速记,会把东西记到跨平台的笔记软件“OneNote”(大画板,随便弄)上,就很少更新CSDN了。更多的是用它的“吐槽”功能当树洞。
偶然间,看见我旦一位博士同学在她的CSDN上写道“谨以此篇博客记录之,为后来者提供一些经验,少走一些弯路”。就重启了更博的想法。
本文主要内容
言归正传。本文记录在Ubuntu下,配置Python的开发环境,包括安装Anaconda、配置源、配置虚拟环境,为不同用户配置虚拟环境。假设各位已经稍微有一点点Linux的操作经验,如知道ls、grep等命令,也稍微有点虚拟环境、pip安装依赖包的经验。
说明:细心的读者会发现本文截图中的主机名有点差异。是的,它们来自于两台机器(sh40 和 db-server)。抓主要矛盾,我就不单独再花时间重新截图了。
安装Anconda
现在记录安装 Anaconda3-2022.05-Linux-x86_64.sh 的关键过程。
操作系统:Welcome to Ubuntu 22.04 LTS (GNU/Linux 5.15.0-53-generic x86_64)
Anaconda安装包:Anaconda3-2022.05-Linux-x86_64.sh
假设需要安装一次Anaconda,多用户都能使用。
这一部分,我的主要操作步骤如下。
1. 准备安装包。Anaconda3-2022.05-Linux-x86_64.sh
2. 切换至root用户。把Anaconda3装到一个稍微友好点的目录。宗旨是要找一个其他用户也要能访问、能运行的目录。
sh Anaconda3-2022.05-Linux-x86_64.sh
目录选择:/opt/anaconda3
详细过程忽略,这是结果。期间,可能会问是否需要运行 conda 的 init 程序。可以选是,也可以跳过,反正其他用户还是要来一遍。
3. 去掉其他用户对anaconda基础环境的写权限。
chmod o-w /opt/anaconda3/envs
会得到这样的效果。
除了owener(用户所有者),其他人将无法写基础环境(base)。
而用其他用户创建的虚拟环境,将在他们用户的home目录下,不可能影响到base环境。如下图。
4. 切换至其他用户,配置环境变量。
可以先备份 .bashrc 文件。
借助conda的init程序。
conda init bash
.bashrc文件的末尾会被加上这些片段。
5. 导入.bashrc,刷新环境变量。
source ~/.bashrc
6. 重启终端,即可。
自动激活base环境。
配置源
感谢万能的“局域网”,才会有这里多出来的一个章节。这里需要改2种源。
1. 更改创建虚拟环境时的源。还是那句话,该备份,先备份。
# 1. 生成配置文件 .condarc
conda config --set show_channel_urls yes
# 2. 添加源,先备份文件!!
~/.condarc
show_channel_urls: true
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/cloud/conda-forge/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
ssl_verify: true
2. 更改pip install时的源。
# 修改或创建文件:~/.pip/pip.conf,内容如下:
[global]
index-url =https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host =https://pypi.tuna.tsinghua.edu.cn
至此,源切换完毕,任意用户都可以用anaconda、创建虚拟环境、装依赖包了。
主要是下载jing'xian提速用的。
创建虚拟环境
# 创建新环境
conda create -n py37_2021 python=3.7
# 显示环境列表
conda env list
# 激活环境
conda activate py37_2021
# 删除环境
conda remove -n py37_2021 --all
pip安装依赖包
激活虚拟环境后,pip install xxx,即可正常使用。
# 安装
pip install xxx
# 列出所有
pip list
# 查找某个
pip list | grep xxx
# 卸载
pip uninstall xxx
# 更新
…
最后,导出当前环境中所有的包,制作requirements.txt
pip freeze > requirements.txt
结语
上述过程 ,亲测有效。如有任何问题或建议,请直接评论或私信联系我。
感谢 Meilinger 的一番话,这就是分享的意义。