Python3 如何从native pip 切换到Anaconda3 pip
Author: Xin Pan
Date: 2020.03.31
实验环境
Ubuntu 16.04+Anaconda3 with python3.7+Native python3.6
开始
本文会讲述如何从native pip 转换到Anaconda3 中的pip。
当前的服务器环境如下:
root@panxinyjy-jupyter-x4qpb:~/demucs# python
Python 3.6.8 (default, Dec 24 2018, 19:24:27)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
root@panxinyjy-jupyter-x4qpb:~/demucs# pip -V
pip 19.2.2 from /root/.python/python3.6/dist-packages/pip (python 3.6)
接着打开~/.bashrc
我们可以看到:
export Python_Version=3.6
export PYTHONPATH=/root/.python/python$Python_Version/dist-packages
export PATH=$PATH:$PYTHONPATH/bin
export PATH=$PATH:/root/.local/bin
这些信息表明我们使用的是native pip。在安装了Anaconda3以后,这里我使用的是python3.7版本,conda中也会有一个pip这个pip 是和python3.7配套的。
我们进入Anaconda3的安装目录,我是放在了~/anaconda3/bin
。我们可以将上述地址加入到.bashrc
文件的$PATH
中然后运行
conda init
完成对conda的初始化,接着我们看是不是有pip这个文件。
从图中我们可以看到是有pip 和python3.7的。如果这里没有我们需要利用下边命令从conda安装pip。
conda install pip
接着我们回到~/.bashrc
这个文件中发现文件看起来像下边这样:
export Python_Version=3.6
export PYTHONPATH=/root/.python/python$Python_Version/dist-packages
export PATH=$PATH:$PYTHONPATH/bin
export PATH=$PATH:/root/.local/bin
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/root/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "/root/anaconda3/etc/profile.d/conda.sh" ]; then
. "/root/anaconda3/etc/profile.d/conda.sh"
else
export PATH="/root/anaconda3/bin:$PATH"
fi
fi
unset __conda_setup
# <<< conda initialize <<<
其中的>>> conda initialize
这些是自己加进去的不用管它们。
我们要将上边文件改成下边的样子。注释掉和native pip相关的$PATH
和$PYTHONPATH
。将Anaconda3中python3.7的bin和lib中的site-packages分别加入到$PATH
和PYTHONPATH
中去。
#export Python_Version=3.6
#export PYTHONPATH=/root/.python/python$Python_Version/dist-packages
#export PATH=$PATH:$PYTHONPATH/bin
export PATH=$PATH:/root/.local/bin
## New added
export PYTHONPATH=/root/anaconda3/lib/python3.7/site-packages
export PATH=$PATH:/root/anaconda3/bin
# End of added
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/root/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "/root/anaconda3/etc/profile.d/conda.sh" ]; then
. "/root/anaconda3/etc/profile.d/conda.sh"
else
export PATH="/root/anaconda3/bin:$PATH"
fi
fi
unset __conda_setup
# <<< conda initialize <<<
最后source .bashrc
就可以了。如果正确的话我们这时候看到的命令提示符会像这样:
(base) root@panxinyjy-jupyter-x4qpb:~# python
Python 3.7.6 (default, Jan 8 2020, 19:59:22)
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
(base) root@panxinyjy-jupyter-x4qpb:~# pip -V
pip 20.0.2 from /root/anaconda3/lib/python3.7/site-packages/pip (python 3.7)
(base) root@panxinyjy-jupyter-x4qpb:~#
在命令行的提示符前边会有Anaconda3激活的env的名字,我这使用是默认的env就是base。从pip -V可以看到是python3.7。表明任务完成。