如何在Ubuntu 16.10上安装Python 3.6的pip?

我想开始指出这个问题可能看起来像重复,但事实并非如此。 我在这里看到的所有问题都是关于Python 3的点子,而我正在谈论Python 3.6。 当时使用的步骤不适用于Python 3.6。

  1. 我从官方docker商店得到了清晰的Ubuntu 16.10镜像。
  2. 运行apt-get update
  3. 运行apt-get install python3.6
  4. 运行apt-get install python3-pip
  5. 运行pip3 install requests bs4
  6. 运行python3.6 script.py
  7. 下面有ModuleNotFoundError
 Traceback (most recent call last): File "script.py", line 6, in <module> import requests ModuleNotFoundError: No module named 'requests' 

Python和PIP的我在机器中:

 python3 python3.5 python3.5m python3.6 python3m python3-config python3.5-config python3.5m-config python3.6m python3m-config pip pip3 pip3.5 

假设您有一个运行Ubuntu 16.04,16.10或17.04的系统,并且您希望Python 3.6成为默认的Python。

如果您使用Ubuntu 16.04 LTS,则需要使用PPA:

 sudo add-apt-repository ppa:jonathonf/python-3.6 # (only for 16.04 LTS) 

然后运行下面的代码(这个在16.10和17.04开箱即可使用):

 sudo apt update sudo apt install python3.6 sudo apt install python3.6-dev sudo apt install python3.6-venv wget https://bootstrap.pypa.io/get-pip.py sudo python3.6 get-pip.py sudo ln -s /usr/bin/python3.6 /usr/local/bin/python3 sudo ln -s /usr/local/bin/pip /usr/local/bin/pip3 # Do this only if you want python3 to be the default Python # instead of python2 (may be dangerous, esp. before 2020): # sudo ln -s /usr/bin/python3.6 /usr/local/bin/python 

完成上述所有操作后,以下每个shell命令都应指出Python 3.6.1 (或更新版本的Python 3.6):

 python --version # (this will reflect your choice, see above) python3 --version $(head -1 `which pip` | tail -c +3) --version $(head -1 `which pip3` | tail -c +3) --version 

至少在Ubuntu 16.10中,默认的python3python3.5 。 因此,所有的python3-X软件包将被安装为python3.5而不是python3.6。

您可以通过检查pip3的shebang来验证这pip3

 $ head -n1 $(which pip3) #!/usr/bin/python3 

幸运的是,由python3-pip软件包安装python3-pip安装在“shared” /usr/lib/python3/dist-packages ,python3.6也可以利用它。

您可以通过执行以下操作来安装python3.6的软件包:

 python3.6 -m pip install ... 

例如:

 $ python3.6 -m pip install requests $ python3.6 -c 'import requests; print(requests.__file__)' /usr/local/lib/python3.6/dist-packages/requests/__init__.py 

这个答案假设你已经安装了python3.6

关于安装pip ,使用curl (而不是wget )避免了将文件写入磁盘。

 curl https://bootstrap.pypa.io/get-pip.py | sudo python3.6 

在此之后, pippip3pip3.6都可以指向相同的目标:

 $ pip -V pip 9.0.1 from /usr/local/lib/python3.6/dist-packages (python 3.6) $ pip3 -V pip 9.0.1 from /usr/local/lib/python3.6/dist-packages (python 3.6) $ pip3.6 -V pip 9.0.1 from /usr/local/lib/python3.6/dist-packages (python 3.6) 

当然,你也可以使用python3.6 -m pip

 $ python3.6 -m pip -V pip 9.0.1 from /usr/local/lib/python3.6/dist-packages (python 3.6)