对于一个工作站来说,可能ubuntu系统自带python环境以及对应的pip版本,这时是皆大欢喜。这时我们如果希望实现多版本python控制可用anaconda实现,并在各自的python环境中用conda install 便可完成,这里不再赘述!
可一旦出现一个完全干净的环境时,之前忽视的问题便会出现,这里将完全干净的docker容器环境python管理中遇到的坑记录如下:
1、如果环境完全干净,首先我们应该更新软件列表,如果不执行这一步,apt-get install 会失败
apt-get update
这个命令,会访问源列表里的每个网址,并读取软件列表,然后保存在系统中。我们在软件包管理器里看到的软件列表,都是通过update命令更新的
apt-get upgrade(如果是严格的版本控制,该命令可不用)
这个命令,会把本地已安装的软件,与刚下载的软件列表里对应软件进行对比,如果发现已安装的软件版本太低,就会提示你更新。
2、安装python版本
这里切记要带python的版本号
apt-get install python3.6
在成功安装python3.6后会发现在终端输入python时仍然会报错说没有python这个程序,这是因为在安装python3.6的过程中,将python3.6加入了/usr/bin中,所以就会出现在终端中输入python3.6时会出现python的版本,并可以正常使用。为了方便我们按照常规习惯使用,我们可以使用一下命令:
ln -s /usr/bin/python3.6 /usr/bin/python
这时我们直接在终端输入python后便可以正常使用了。
3、安装pip
pip实质上只是python的一个包,平常使用pip安装python所依赖的包。所以为了正常使用pip,第一步需要安装pip。
在安装的过程中会有一些版本的坑需要注意
(1)如果直接使用apt-get install python-pip
时会默认装python2使用的pip,同时也会将原有的python环境破坏,将系统内的基础环境置换为python2.7,得不偿失。
(2)如果直接使用apt-get install python3-pip
时会默认装python3使用的pip,但并不一定是系统内安装的python版本,所以这两种方法均不适用于系统内有多个版本的python。
终极办法:
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
下载get-pip.py
如果使用python3.6安装pip,则用命令:
python3.6 get-pip.py
如果出现ModuleNotError:No module named 'distutils.util'
,可使用一下方法解决
apt-get install python3-distutils
查看是否安装成功
pip -V
如果显示下面一句话则安装成功
pip 10.0.1 from /usr/local/lib/python3.6/dist-packages/pip(python3.6)