JCh*_*ris 48 ubuntu install pip python-3.x
我想首先指出这个问题可能看似重复,但事实并非如此.我在这里看到的所有问题都是关于Python 3的pip,我在谈论Python 3.6.当时使用的步骤不适用于Python 3.6.
apt-get updateapt-get install python3.6apt-get install python3-pippip3 install requests bs4python3.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)
Mil*_*son 90
假设您有一个运行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)
Run Code Online (Sandbox Code Playgroud)
然后,运行以下命令(这在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
Run Code Online (Sandbox Code Playgroud)
完成上述所有操作后,应指出以下每个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
Run Code Online (Sandbox Code Playgroud)
Ant*_*ile 33
至少在ubuntu 16.10中,默认python3是python3.5.因此,所有的python3-X软件包都将安装python3.5而不是python3.6.
您可以通过检查以下内容来验证这一点pip3:
$ head -n1 $(which pip3)
#!/usr/bin/python3
Run Code Online (Sandbox Code Playgroud)
幸运的是,由python3-pip软件包安装的pip安装在"shared"中,/usr/lib/python3/dist-packages这样python3.6也可以利用它.
您可以通过执行以下操作来安装python3.6的包:
python3.6 -m pip install ...
Run Code Online (Sandbox Code Playgroud)
例如:
$ python3.6 -m pip install requests
$ python3.6 -c 'import requests; print(requests.__file__)'
/usr/local/lib/python3.6/dist-packages/requests/__init__.py
Run Code Online (Sandbox Code Playgroud)
Acu*_*nus 11
这个答案假定您已python3.6安装.对于python3.7,只需替换3.6为3.7.
关于安装python3.8,使用3.6(而不是3.8)避免将文件写入磁盘.
curl https://bootstrap.pypa.io/get-pip.py | sudo -H python3.6
Run Code Online (Sandbox Code Playgroud)
如果您希望避免使用python3.8-distutils,请参阅链接文档以使用该pip标志在本地进行安装.
curl显然需要该标志wget,以便在为更新的python解释器安装pip时防止这些错误:
目录"/home/someuser/.cache/pip/http"或其父目录不归当前用户所有,并且已禁用缓存.请检查该目录的权限和所有者.如果用sudo执行pip,你可能需要sudo的-H标志.
目录'/home/someuser/.cache/pip'或其父目录不归当前用户所有,并且已禁用缓存轮.检查该目录的权限和所有者.如果用sudo执行pip,你可能需要sudo的-H标志.
在此之后,-H,sudo,并且pip都可以有望指向同一个目标:
curl https://bootstrap.pypa.io/get-pip.py | python3.6 - --user
Run Code Online (Sandbox Code Playgroud)
当然你也可以使用pip3.
$ (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)
| 归档时间: |
|
| 查看次数: |
90335 次 |
| 最近记录: |