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

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

首先我想指出的是,这个问题看似重复,但其实不然。我在 Ask Ubuntu 上看到的所有问题都与 Python 3 的 pip 有关,而我说的是 Python 3.6。当时使用的步骤不适用于 Python 3.6。

  1. 我从官方 Docker 商店
  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

得到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

答案1

此答案假设您已python3.6安装。 对于python3.7,请替换3.63.7。 对于python3.8,请替换3.63.8,但可能还首先需要该python3.8-distutils包。

使用 sudo 安装

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

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

显然,为了防止在为更新的 Python 解释器安装 pip 时出现如下错误,该-H标志是必要的:sudo

目录“/home/someuser/.cache/pip/http”或其父目录不属于当前用户,并且缓存已被禁用。请检查该目录的权限和所有者。如果使用 sudo 执行 pip,您可能需要 sudo 的 -H 标志。

目录“/home/someuser/.cache/pip”或其父目录不属于当前用户,并且缓存轮已被禁用。请检查该目录的权限和所有者。如果使用 sudo 执行 pip,您可能需要 sudo 的 -H 标志。

无需 sudo 即可安装

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

有时可能会发出警告,例如:

警告:脚本轮安装在 '/home/ubuntu/.local/bin' 中,该目录不在 PATH 中。请考虑将此目录添加到 PATH,或者,如果您希望隐藏此警告,请使用 --no-warn-script-location。

确认

此后,预计pippip3pip3.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)

答案2

我在 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

相关内容