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