I'd like to start off by pointing out that this question may seem like a duplicate but it's not All the questions I saw here on Ask Ubuntu were regarding pip for Python 3 and I'm talking about Python 3.6. The steps used back then don't work for Python 3.6.
- I got a clear Ubuntu 16.10 image from the official docker store .
apt-get install python3.6
apt-get install python3-pip
pip3 install requests bs4
Traceback (most recent call last): File "script.py", line 6, in <module> import requests ModuleNotFoundError: No module named 'requests'
Python's and pip's i have in the machine.
python3 python3.5 python3.5m python3.6 python3m python3-config python3.5-config python3.5m-config python3.6m python3m-config pip pip3 pip3.5
This answer assumes that you have
python3.6 installed. For
python3.7 , replace
3.7 . For
python3.8 , replace
3.8 , but it may also first require the
Installation with sudo
With regard to installing
pip , using
curl (instead of
wget ) avoids writing the file to disk.
curl https://bootstrap.pypa.io/get-pip.py | sudo -H python3.6
-H flag is evidently necessary with
sudo in order to prevent errors such as the following when installing pip for an updated python interpreter.
The directory '/home/someuser/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/home/someuser/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Installation without sudo
curl https://bootstrap.pypa.io/get-pip.py | python3.6 - --user
This may sometimes give you a warning such as
WARNING: The script wheel is installed in '/home/ubuntu/.local/bin' which is not on PATH. Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
pip3 , and
pip3.6 can all be expected to point to the same target.
$ (pip -V && pip3 -V && pip3.6 -V) | uniq pip 18.0 from /usr/local/lib/python3.6/dist-packages (python 3.6)
Of course you can alternatively use
python3.6 -m pip as well.
$ python3.6 -m pip -V pip 18.0 from /usr/local/lib/python3.6/dist-packages (python 3.6)