如何在Ubuntu 16.10上安装Python 3.6的pip?
我想首先指出这个问题可能看似重复,但事实并非如此。 我在Ask Ubuntu上看到的所有问题都是关于Python 3的pip,我在谈论Python 3.6。 当时使用的步骤不适用于Python 3.6。
- 我从官方docker商店得到了一张清晰的Ubuntu 16.10图像。
- 运行
apt-get update
- 运行
apt-get install python3.6
- 运行
apt-get install python3-pip
- 运行
pip3 install requests bs4
- 运行
python3.6 script.py
得到下面的ModuleNotFoundError
:
Traceback (most recent call last): File "script.py", line 6, in 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
这个答案假设你安装了python3.6
。 对于python3.7
,只需用3.7
替换3.6
。
安装
关于安装pip
,使用curl
(而不是wget
)可以避免将文件写入磁盘。
curl https://bootstrap.pypa.io/get-pip.py | sudo -H python3.6
如果您希望避免使用sudo
,请参阅链接文档以使用--user
标志在本地安装pip
。
-H标志
使用sudo
显然需要-H
标志,以便在为更新的python解释器安装pip时防止出现以下错误:
目录“/home/someuser/.cache/pip/http”或其父目录不归当前用户所有,并且已禁用缓存。 请检查该目录的权限和所有者。 如果用sudo执行pip,你可能需要sudo的-H标志。
目录“/home/someuser/.cache/pip”或其父目录不归当前用户所有,并且已禁用缓存轮。 检查该目录的权限和所有者。 如果用sudo执行pip,你可能需要sudo的-H标志。
validation
在此之后, pip
, pip3
和pip3.6
都可以指向同一个目标:
$ (pip -V && pip3 -V && pip3.6 -V) | uniq pip 18.0 from /usr/local/lib/python3.6/dist-packages (python 3.6)
当然你也可以使用python3.6 -m pip
。
$ python3.6 -m pip -V pip 18.0 from /usr/local/lib/python3.6/dist-packages (python 3.6)
我在stackoverflow上得到了答案。
资料来源: https : //stackoverflow.com/a/44254088/1812319
假设您有一个运行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
目录“/home/doc/.cache/pip/http”或其父目录不归用户所有,并且已禁用缓存。 请检查该目录的权限和所有者。 如果用sudo执行pip,你可能需要sudo的-H标志。
解决
chown root:doc /home/doc/.cache/pip/http
如果实施很难解释,那是个坏主意。