RPi3をPython 3.6に更新するにはどうすればよいですか?


39

Python 3.6がリリースされました。これらの指示に従って tarballからビルドしようとしましたが、makeコマンドでハングアップしたため、20分ほどでプロセスを終了しました。

また、./configureコマンドの実行中に、多くのチェックが「いいえ」で終了したことにも気付きました。そのようなことをすべて実行して、インストールし直す必要がありますか?


あなたは、おそらくこれらを試してみてください:askubuntu.com/a/865569
SAGU

回答:


34

RPi3をPython 3.6に更新するにはどうすればよいですか?

現在、ソースからのインストールのみが利用可能です。参照した手順は、バージョン3.6に適しています。繰り返す:

wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz
tar xzvf Python-3.6.0.tgz
cd Python-3.6.0/
./configure
make -j4
sudo make install

クラス10 SDカード(YMMV)を搭載したRaspberry Pi 3上の新しいRaspbianの場合:

  • configure 2分以上かかります
  • make 約15分かかります(stderrに対して8つの警告が生成されます)
  • sudo make install 約2分かかります

そのようなことをすべて実行して、インストールし直す必要がありますか?

configureスクリプトがエラーを報告しない限り、答えは「いいえ、もちろんありません」です。

configure一連のチェックを実行し、結果を入力として使用してを作成しMakefileます。結果は、アーキテクチャ、ハードウェア機能などに依存します。これらは、コンパイルを成功させるための要件ではありません。最初のチェックの1つは、Python 3.6自体のチェックですno。そのため、結果は確実になります。

make -j4 makeプロセスで4つのrpiコアすべてを単純に使用します(はるかに高速)


私はこれを試しましたが、それは永遠に続きます。configureは134分かかり、makeは1時間以上実行されています。モデルRPi3、最新のraspbian。なぜこんなに時間がかかっているのでしょうか?
ミステリー

@ミステリ​​ーあなたのSDカードはおそらく遅すぎます。優れたブランド(Sandisk、Samsungなど)から何かを入手し、少なくともクラス10であることを確認します(Sandiskでは「Ultra」と呼びます)。
タルン

2
このことについてコメントすると思いますが、コンパイルとインストールの前に必要なパッケージをインストールすることを覚えておく必要があります。そうしないと、SSLエラーのためにpip3が機能しません)。必要なパッケージは次のとおり
python

rb pi 3のPython 3.7.2でエラーが発生しsudo apt-get install libffi-devました。この回答で提案されているように実行することで解決しましたstackoverflow.com/a/48045929/2343488
juliocesar

24

私は非常にあなたがチェックアウトをお勧めしますBerrycondaのでパッケージマネージャをjjhelmus。基本的に、Minicondaのarmv7lバージョンの最新バージョンであり、ソースからコンパイルする必要なくPython 3.6パッケージを使用できます。

あるいは、すでにcondaインストールしている場合は、Berrycondaのデフォルトのrpiチャネルを追加してPython 3.6をインストールするだけで済みます。

conda config --add channels rpi
conda install python=3.6

まあ、それはソースからコンパイルするよりはるかに簡単です。ありがとう!
-Ekevoo

1
完全をconda create -n py36 python=3.6
期す

Berryconda、なんて素晴らしいソリューションでしょう!
DJK

@brittohaloranこのコメントの時点で、これによりconda base環境にPython 3.6.6がインストールされるため、作成したenvに、そのenvに入れる予定の内容(以外のものpy36)を説明する名前を付けたいと思うでしょう。
ホブ

魅力的で最良かつ最も簡単なソリューションのように機能します
付与

12

Raspberry Pi 3で高速ビルドするには、makeコマンドで-j4 paramを使用します。

make -j4

3
かなり速いようです!-j4なしの15分以上の対1〜2 !!!
JxAxMxIxN

1
そのパラメーターは何をしますか?
timbram

2
param -j4は、4つの並列ジョブを開始するようにmakeに指示するため、4つのCPUコアすべてを同時に使用できます。
hdiogenes

4

私はRPi2を使用していますが、提案された手順に従ってpython3.6をインストールすることに成功しました。しかし、コメンターが指摘したように、pipでパッケージインストールしようとしたときにsslで問題が発生しました。

別のテーマの別のスレッドから、コンパイルする前にsslをインストールする必要があることを学びました。

sudo apt-get install libssl-dev
wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz
tar xzvf Python-3.6.0.tgz
cd Python-3.6.0/
./configure
make
sudo make install
python3.6 -V
python3.6 -m pip install --upgrade pip
python3.6 -m pip install --user numpy 
sudo apt-get update
sudo apt-get upgrade

sudo apt-get install libatlas-base-dev gfortran

python3.6 -m pip install --user scipy

pipを使用したscipyのインストールには非常に長い時間(時間)がかかり、解決策を探しています。これに戻ります。インストールの残りの部分は保留になります。

python3.6 -m pip install --user matplotlib

python3.6 -m pip install --user ipython

python3.6 -m pip install --user jupyter

python3.6 -m pip install --user pandas

python3.6 -m pip install --user sympy

python3.6 -m pip install --user nose

python3.6を2回コンパイルしなければならない利点は、2回目のコンパイルがはるかに高速になったことです。一方、numpyのインストールには時間がかかるため、パッケージのインストールを分割しています。


numpyとscipyのインストールはそれ自体がハードルであり、おそらく外部プラットフォーム固有の依存関係のため、pipではなくソースから実行する必要があります。ここで問題に私の答えを参照してください:raspberrypi.stackexchange.com/a/77856/79467を。一方、この方法ではインストールはそれほど速くありませんが、実行速度は大幅に向上します。
テグソ

1

すべての依存関係をインストールする必要があります。これらすべての警告メッセージ、エラーメッセージ、および「no」チェックに対処する必要があります。


たとえば、次のように対処するにはどうすればよいですか:checking Solaris LFS bug... no、またはchecking getaddrinfo bug... no、またはchecking for the Android API level... not Android?そして最も重要なこと:checking for python3.6... noPython 3.6をインストールするとき、これにどのように対処しますか?
テクラフ16

@techrafこれらの特定のものは大丈夫です。依存関係ではなく、修正するものをチェックしています。最後の1つは、インストールする前に既にPython 3.6があるかどうかを確認するだけです。
tlhIngan 16

したがって、「すべてのそれらの[]「いいえ」チェックに対処する必要がある」と提案したが、それらの特定のチェックは大丈夫だった。それでは、どちらが大丈夫かをどうやって知ることができますか?170個の「nos」を取得しました。:checking for conio.h... no、またはchecking for pthread_init... no、またはchecking for libutil.h... no特定かつ大丈夫、または対処が必要ですか?
テクラフ16

既にインストールされている可能性のあるCヘッダーファイルとコンポーネントをチェックしているように聞こえます。この場合、「チェック」は無視できると思います。別の回答で説明されているように、コンパイラがメイクファイルを作成するのを助けるだけです。エラーと警告は確実に対処する必要がありますが、これらのチェックは問題ありません。
tlhIngan 16
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.