この質問は重複しているように見えるかもしれませんが、そうではないことを指摘することから始めたいと思います。ここで私が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'
私がマシンに持っている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
私は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
上記のすべてを完了すると、次の各シェルコマンドは
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
この回答は、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
更新されたpythonインタープリターにpipをインストールするときに、次のようなエラーを防ぐために、Sudo
には-H
フラグが明らかに必要です。
ディレクトリ '/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
これにより、次のような警告が表示される場合があります。
警告:スクリプトホイールは、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)
もちろん、代わりにpython3.6 -m pip
を使用することもできます。
$ python3.6 -m pip -V
pip 18.0 from /usr/local/lib/python3.6/dist-packages (python 3.6)