JCh*_*ris 50 python3 software-installation pip
我想首先指出这个问题似乎是重复的,但事实并非如此。我在 Ask Ubuntu 上看到的所有问题都与 Python 3 的 pip 相关,我说的是 Python 3.6。当时使用的步骤不适用于 Python 3.6。
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 <module>
import requests
ModuleNotFoundError: No module named 'requests'
Run Code Online (Sandbox Code Playgroud)
我在机器中的 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
Run Code Online (Sandbox Code Playgroud)
Asc*_*ius 56
此答案假定您已python3.6
安装。对于python3.7
,替换3.6
为3.7
。对于python3.8
,替换3.6
为3.8
,但它也可能首先需要python3.8-distutils
包。
关于安装pip
,使用curl
(而不是wget
)避免将文件写入磁盘。
curl https://bootstrap.pypa.io/get-pip.py | sudo -H python3.6
Run Code Online (Sandbox Code Playgroud)
该-H
标志显然是必要的,sudo
以防止在为更新的 python 解释器安装 pip 时出现如下错误:
目录“/home/someuser/.cache/pip/http”或其父目录不属于当前用户所有,并且缓存已被禁用。请检查该目录的权限和所有者。如果使用 sudo 执行 pip,您可能需要 sudo 的 -H 标志。
目录“/home/someuser/.cache/pip”或其父目录不属于当前用户所有,并且缓存轮已被禁用。检查该目录的权限和所有者。如果使用 sudo 执行 pip,您可能需要 sudo 的 -H 标志。
curl https://bootstrap.pypa.io/get-pip.py | python3.6 - --user
Run Code Online (Sandbox Code Playgroud)
这有时可能会发出警告,例如:
警告:脚本轮安装在不在 PATH 上的“/home/ubuntu/.local/bin”中。考虑将此目录添加到 PATH,或者,如果您希望取消此警告,请使用 --no-warn-script-location。
在此之后,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)
Run Code Online (Sandbox Code Playgroud)
当然,您也可以选择使用python3.6 -m pip
。
$ python3.6 -m pip -V
pip 18.0 from /usr/local/lib/python3.6/dist-packages (python 3.6)
Run Code Online (Sandbox Code Playgroud)
JCh*_*ris 19
我在 stackoverflow 上得到了答案。
来源:https : //stackoverflow.com/a/44254088/1812319
假设您有一个运行 Ubuntu 16.04、16.10 或 17.04 的系统,并且您希望 Python 3.6 成为默认 Python。
如果您使用的是 Ubuntu 16.04 LTS,则需要使用 PPA:
Run Code Online (Sandbox Code Playgroud)sudo add-apt-repository ppa:jonathonf/python-3.6 # (only for 16.04 LTS)
然后,运行以下命令(这在 16.10 和 17.04 上开箱即用):
Run Code Online (Sandbox Code Playgroud)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):Run Code Online (Sandbox Code Playgroud)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