anaconda安装在移动硬盘

目的:为什么要这样做

​ 我的Mac只有256g,已经只剩下了60g,生物信息分析一个软件就是100多g,我把原来电脑里的anaconda文件夹删掉,在移动硬盘重新安装一遍anaconda,把默认的conda目录设置在移动硬盘里,然后改一下shell(bash_profile 或者 zshrc)的配置文件,以后什么虚拟环境啊依赖啊都用移动硬盘装,节约Mac硬盘空间。

一、anaconda安装在移动硬盘

0、把移动硬盘权限打开

1
2
chmod 771 /Volumes
chmod 771 /Volumes/newSpace # /Volumes是Mac内的文件夹,newSpace是硬盘的名称。

1、安装

1
2
3
4
5
6
7
8
9
10
sh Anaconda3-5.3.1-MacOSX-x86_64.sh
# 我的Mac中,有python2.7 和python3.7 和python3.9 这个anaconda是python3 的;

# 看到提示“Press Enter to confirm the location, Press CTRL-C to cancel the installation or specify an alternate installation directory.”(“按回车键确认安装路径,按'CTRL-C'取消安装或者指定安装目录。”)如果接受默认安装路径,则会显示“PREFIX=/home//anaconda<2 or 3>”并且继续安装。安装过程大约需要几分钟的时间。这里建议直接使用木人安装路径就可以了。
>>> /Volumes/newSpace/anaconda3 # 更改conda目录致移动硬盘

# 然后你会看到提示“Do you wish the installer to prepend the Anaconda install location to PATH in your /home//.bash_profile ?”(“你希望安装器添加Anaconda安装路径在/home/<user>/.bash_profile文件中吗?”),这里是说你希望自动添加环境变量到.bash_profile文件中,输入“yes",就会自己帮你添加,如果输入”no",则需要你自己手动添加,这里直接“yes"就好。

# 最后会问你要不要安装 vscode,选择 no 不安装就行了。

2、修改环境变量

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 用bash的改 ~/.bash_profile;
# 用zsh的改 ~/.zshrc ,我经常两个切换着用,所以都改。
vim ~/.bash_profile 或者 ~/.zshrc
# 先注释掉旧的conda配置,然后添加如下内容:
-------------------------------------------------

# added by Anaconda3 5.3.1 installer
# >>> conda init >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$(CONDA_REPORT_ERRORS=false '/Volumes/newSpace/anaconda3/bin/conda' shell.bash hook 2> /dev/null)"
if [ $? -eq 0 ]; then
\eval "$__conda_setup"
else
if [ -f "/Volumes/newSpace/anaconda3/etc/profile.d/conda.sh" ]; then
. "/Volumes/newSpace/anaconda3/etc/profile.d/conda.sh"
CONDA_CHANGEPS1=false conda activate base
else
\export PATH="/Volumes/newSpace/anaconda3/bin:$PATH"
fi
fi
unset __conda_setup
# <<< conda init <<<
1
2
3
# 配置文件生效
source ~/.bash_profile
source ~/.zshrc

3、新建一个python2环境用来放生物信息工具

1
2
3
4
5
6
7
8
9
conda create -n biology_tools_py2 python=2
# 由于我的conda是python3版本的,实际上用到的这个python2.7是我的Mac中的,虚拟环境在 /Volumes/newSpace/anaconda3/envs/biology_tools_py2
# biology_tools_py2虚拟环境是python2.7的版本。

conda env list
# 查看有哪些虚拟环境。

pip -V # 查看pip到底用的是Mac的pip,还是虚拟环境中的pip。
conda -V

4、激活环境

1
2
conda activate biology_tools_py2 # 激活环境
conda deactivate # 退出环境

二、虚拟环境下安装python库

​ 先激活虚拟环境,再通过pip或者conda安装需要的库,我平时的习惯是用pip。

0、通过pip安装

​ 用pip指定包到安装位置(这样的目的是以防多个pip的情况下,分不清下载进了哪个虚拟环境的site-packages中),pip在某个虚拟环境下载的包理论上会下载到那个虚拟环境下的 lib/pythonXXX/site-packages 之中,但是实际出现过错位,所以我建议指定好pip下载包的位置。pip也能用清华源加速,命令后加-i 清华源 即可。

1
pip install 【包名】 --target=/Volumes/newSpace/anaconda3/envs/biology_tools_py2/lib/python2.7/site-packages

1、通过conda安装

​ 和pip一样,也是指定好安装位置。包存入我们移动硬盘中的虚拟环境中。

1
2
3
4
5
6
7
8
conda install 【包名】
# 这样conda安装的包默认去了 /Volumes/newSpace/anaconda3/pkgs

# 查看已安装好的虚拟环境下都安装了那些python库
conda list

# 虚拟环境对应的python版本的anaconda中的其他库一次性安装好,命令如下:
conda install anaconda

2、改conda源为清华或者直接复原,打开终端的科学上网。

1
2
3
4
# 方案一:
# 换回conda的默认源。
conda config --remove-key channels
# 再打开科学上网。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 方案二:
# 添加清华或者阿里源(国内的源经常失效,要经常换。)
vim ~/.condarc

channels:
- defaults
show_channel_urls: true
default_channels:
- http://mirrors.aliyun.com/anaconda/pkgs/main
- http://mirrors.aliyun.com/anaconda/pkgs/r
- http://mirrors.aliyun.com/anaconda/pkgs/msys2
custom_channels:
conda-forge: http://mirrors.aliyun.com/anaconda/cloud
msys2: http://mirrors.aliyun.com/anaconda/cloud
bioconda: http://mirrors.aliyun.com/anaconda/cloud
menpo: http://mirrors.aliyun.com/anaconda/cloud
pytorch: http://mirrors.aliyun.com/anaconda/cloud
simpleitk: http://mirrors.aliyun.com/anaconda/cloud

1
2
# 查看conda配置
cat ~/.condarc

​ 总的来说,用pip 会比conda 快很多,conda 在 Solving environment: 可能要等很久,用户体验不好。不是迫不得已我都首选用pip -i 配一个国内源。


三、补充:虚拟环境中可能遇到的问题

0、conda Collecting package metadata (repodata.json)卡住或 failed问题

参考: https://blog.csdn.net/qq_40345954/article/details/114392892

先退出proxy代理

操作一次conda换源:

1
2
3
4
5
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
conda config --set show_channel_urls yes

再conda清除国内源:

1
conda config --remove-key channels

看看conda的配置

1
cat ~/.condarc 

新建虚拟环境或者其他操作

1、shell版本的问题

​ 无论shell是那个版本,~/.condarc配置文件搞定了, shell版本不影响conda的使用,zsh还是bash都一样。

2、PackagesNotFoundError: The following packages are not available from current channels的解决办法

截屏2022-11-30 00.06.25

​ 解决方法就是 去 https://anaconda.org/ 官网,搜索这个包,然后输入网址下方任意解决方案即可;

截屏2022-11-30 00.08.32