Python3 如何从native pip 切换到Anaconda3 pip

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有没有

从图中我们可以看到是有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分别加入到$PATHPYTHONPATH中去。

#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。表明任务完成。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章