ベリーパイのpythonおよびpipインストール使用管理ガイド


python 3は科学計算、深さ学習などの分野ですでに活躍しており、python 2も2020年以降徐々に歴史の舞台を脱退する.しかし、ベリーパイでは、多くのソフトウェアがpython 2に依存しており、pythonのデフォルトバージョンをpython 3バージョンに設定することはできません.そうしないと、実際の使用中に多くの不要なトラブルに直面する可能性があります.ベリーパイ環境でpython 3を使用する必要がある場合は、python仮想環境を使用することをお勧めします.
一、pythonのインストール
ベリーパイにPython 2が取り付けられています.7およびPython 3.5(Raspbian Stretch 9.3)で、Python 2がデフォルトで使用されます(pythonはpython 2.7を指します).インストールされていない場合は、次の方法でインストールできます.
1.Pythonのインストール
#   python(  python2)
sudo apt-get install python-dev

#   python3
sudo apt-get install python3-dev

2.pythonコマンドの指示を調整する
技術的には、ベリーパイでpythonコマンドをpython 3に割り当てることができます.
sudo ln -s /usr/bin/python3.5 /usr/bin/python

しかし、実際の使用では、今までこのような変更はお勧めしませんでした.実践の中で私はこれによって引き起こされた不要な問題にたくさん出会ったからです.python 3を使用する場合は、python 3コマンドを使用するか、仮想環境を使用することをお勧めします.
二、pipを取り付ける
1.pip取付
一般的にPython 2とPython 3もそれぞれpipモジュールがインストールされています.インストールされていない場合は、次の方法でインストールできます.
公式pipインストールスクリプトを使用してインストールすると、最新バージョンのpipをインストールでき、より良い体験が得られます.
# 【 】    pip      (   python2 site-packages )、  pip3(   python3 site-packages )
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
sudo python get-pip.py
sudo python3 get-pip.py

#   apt-get  pip(   python2 dist-packages )、  pip3(   python3 dist-packages )
sudo apt-get install python-pip
sudo apt-get install python3-pip

#   easy_install    pip(   python2 dist-packages )、  pip3(   python3 dist-packages )
sudo python -m easy_install pip
sudo python3 -m easy_install pip

【注】:apt-getインストールまたはeasy_Installは、pipインストールモジュールを含めてpythonのdist-packagesディレクトリにインストールされ、ソースコードからインストールするだけでsite-packagesにインストールされます.
2.pipアップグレード
pipをアップグレードするには、次の方法があります.
​pip install --upgrade pip
 
​pip install -U pip
 
python -m pip install --upgrade pip
 
python -m pip install -U pip
 
easy_install --upgrade pip

3.pipを呼び出す
pipは実際にはpython環境に依存するパケットであるため、pipインストールモジュールを使用する場合、モジュールがどのpython環境から呼び出されるかによって、モジュールがどの位置にインストールされるかが決定される.まずpipコマンドが指すpython解釈器を見てみましょう.
#!/usr/bin/python
# -*- coding: utf-8 -*-
import re
import sys

from pip._internal import main

if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
    sys.exit(main())

したがって,この場合pipコマンドを直接呼び出すとpython 2の環境にパッケージがインストールされると判断できる.pip 3コマンドをもう一度見てみましょう.
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import re
import sys

from pip._internal import main

if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
    sys.exit(main())

pythonコマンドの指向を調整するのと同様に、pipコマンドをpython 3環境のpipモジュールにデフォルトで指向させることもできますが、推奨しません.
sudo nano /usr/local/bin/pip【       which pip  ,      】
     #!/usr/bin/python2   #!/usr/bin/python3

pip/pip 3コマンドを直接使用する以外は、python-m/python 3-mコマンドを直接使用してpip/pip 3を呼び出すほうが正確です.
python -m pip install xxx
python3 -m pip install xxx

三、pip配置
多くの人がpipを使うとき、上はpip install操作で、pipについて基本的な理解がなく、インストールが遅い、権限がないなど、さまざまな問題が発生します.
1.プロファイル
Linux環境では、pipプロファイルの場所は、仮想環境レベル:$VIRTUAL_ENV/pip.confユーザレベル:~/.pip/pip.confまたは~/.config/pip/pip.conf(両者が同時に存在する場合、前者が最も優先度が高い).globalレベル:/etc/pip.confはpip configで現在の構成を表示できます.
#       
pip config list
#            
pip config --site list
#          
pip config --user list
#          
pip config --global list

2.構成パラメータ
プロファイルには複数のsectionが含まれており、各sectionには[]で囲まれた[section header]と、特定の構成オプションとパラメータが含まれています.section headerはpipコマンドラインからのコマンド(install,freezeなど)、グローバルパラメータを設定するための[global]から来ています.
具体的な構成オプションには、(1)index-urlなど、各コマンドからのオプションの非略語バージョン、(2)timeout,trusted-hostなどのGeneral optionsに由来する.
【Note 1】[global]で設定したパラメータは、特定のsection headerの下でカスタマイズできます.pipは、特定のsection headerの下で設定されます.たとえば、次のようになります.
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
index-url=http://mirrors.aliyun.com/pypi/simple/

index-url=http://mirrors.aliyun.com/pypi/simple/こそ有効です.
【Note 2】前述の3つのレベルのプロファイルでは、3つのレベルのプロファイルが同時に存在する場合に構成がロードされますが、コンフィギュレーションオプションが競合している場合は、優先度仮想環境レベル(仮想環境がアクティブ化されている)>ユーザーレベル>システムレベル(要権限)です.
3.例:ミラーソース構成
国内ではpipのデフォルトのミラーソースのダウンロードが遅い.以下の配置で国内のミラーソースを修正することができ、清華、アリ、中科大などにpypiのミラーソースがある.
[install]
index-url=http://mirrors.aliyun.com/pypi/simple/
#     mirrors.aliyun.com
trusted-host=mirrors.aliyun.com

くどくど言うと、ミラーソースの構成はuserレベルの構成ファイルに配置でき、各仮想環境が構成されるのを避けることができますが、システムレベル(権限が必要)に置く必要はありません.多くの場合、私たちはこの権限を持っているかもしれませんが、私の提案は、あなたが管理者ではなく、どのように管理するか分からない場合は、userレベルに物を置いておけばいいということです.
四、pipインストールモジュール-インストール位置の選択と権限の問題
pipがインストール位置の選択ができていない場合、権限の問題、インストール位置の混乱など、問題が発生しやすい.前述site-packagesとdist-packagesの違いについて説明したが、ここではインストール場所をこの2つのディレクトリに正確に設定する必要はなく、libの上位レベルのディレクトリに位置するだけでよい.例えば、システムレベル:/usr/local/lib/ユーザーレベル:~/.local/仮想環境レベル:~/.virtualenvs/venv_name/sudo権限を与える場合、デフォルトではシステムレベルにインストールされ、システムレベルにインストールされたパッケージはすべてのユーザーがアクセスできます.-userパラメータを追加すると、デフォルトではユーザーレベルディレクトリにインストールされます.仮想環境では、仮想環境レベルのディレクトリにインストールされます.インストール場所は、次のようなプロファイルで設定することもできます.
[install]
prefix=~/.virtualenvs/venv_name/

必要でない場合は、インストール場所を自分で配置しないことをお勧めします.配置が悪いと逆効果になります.いつ必要ですか.一部のパッケージがデフォルトでシステムレベルにインストールされると、Permission Deniedが表示され、prefixをカスタマイズしてこの問題を解決することができます.

【参考文献】
https://pip.pypa.io/en/stable/reference/pip_config/#options https://pip.pypa.io/en/stable/user_guide/#configuration