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

新手上路,请多包涵

我想首先指出这个问题可能看起来像是重复的,但事实并非如此。我在这里看到的所有问题都是关于 Python 3 的 pip,而我说的是 Python 3.6。之前使用的步骤不适用于 Python 3.6。

  1. 我从 官方 docker store 得到了清晰的 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

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

原文由 JChris 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 469
2 个回答

假设您有一个运行 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

原文由 Miles Erickson 发布,翻译遵循 CC BY-SA 3.0 许可协议

至少在 ubuntu 16.10 中,默认值 python3python3.5 。因此,所有 python3-X 包都将安装用于 python3.5 而不是 python3.6。

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

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

幸运的是, python3-pip 包安装的pip被安装到“共享” /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

原文由 anthony sottile 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题