質問:
RaspberryPiに最新のScipyバージョンをインストールする方法
zurfyx
2013-07-07 03:11:38 UTC
view on stackexchange narkive permalink

現在RaspbianOSを使用しています

試してみました:

  sudo apt-get install python-numpy python-scipy python-matplotlib ipython ipython-notebook python-pandas python-sympy python-nose  

正常に動作しましたが、古いバージョン(0.10)をインストールしました

そして:

  sudo apt- get install libatlas-base-dev gfortran python-pipsudo pip install scipy  

1時間以上作業した後、エラーが発生しました。

何をしましたかRaspberryにScipy0.12をインストールしますか?

正確なエラーメッセージを教えていただけますか?
また、Raspberry Piへのscipyのインストールに関するブログ投稿は次のとおりです:http://wyolum.com/numpyscipymatplotlib-on-raspberry-pi/
セブン 答え:
teoguso
2018-01-17 00:36:52 UTC
view on stackexchange narkive permalink

TL; DR:最後の段落にスキップして、スワップスペースを増やし、メモリの目詰まりを回避する方法を確認してください。また、numpyとscipyにpipを使用しないでください。

ラズベリーパイでscipyの最新バージョンを取得するには、ソースからビルドする必要があります。主な理由は、scipyがコンパイルされたCライブラリとFortranライブラリに依存しており、同じアーキテクチャでコンパイルする必要があるためです。通常、 pip install はビルド済みのパッケージをフェッチしますが、RaspberryPiのARMアーキテクチャは実際にはサポートされていません。

これだけで十分な場合は、比較的簡単です(主な手順は次のとおりです)。 ここにあり、以下に要約されています)が、ラズベリーパイには、1週間の調査と試行錯誤の後で初めて気付いた、追加の問題があります(修正が必要な場合は最後にスキップしてください) 、これは利用可能なメモリの量が少ないためだと思います。

プロセス全体を要約してみます(私のように人々がインターネットを飛び回る必要がないように)。 。

要件

scipyを構築するための要件が​​いくつかあります。 Pythonパッケージに関する限り、 numpy cython setuptools 、および(ドキュメントを作成する場合は) Sphinx 。Raspbianに付属しているこれらのパッケージのバージョン( python3-numpy などのパッケージ)を試して使用する必要がありますが、個別にビルドする必要がある場合があります(OT)。

システム要件に関する限り、 apt-get でインストールできるいくつかのパッケージが必要です。つまり:

  • A開発ヘッダー付きのBLAS / LAPACK数学ライブラリ(例: libopenblas-base および libopenblas-dev ;
  • python-dev ;
  • CおよびFortranコンパイラ、 gcc および gfortran ;

最後に、ここ aからダウンロードできるソースコードが必要です。 >(Scipy 1.0.0は、私が書いている最新の安定バージョンです)。それなら、 tar -xzvf scipy-v1.0.0.tar.gzcd scipy

の問題です。

ソースのコンパイル

この時点で、ビルドプロセスを開始すると、問題なく動作しているように見えますが、数分後にハングします。

より大きなスワップを追加するスペース

これは、コンパイルスクリプトが、複数のプロセスを生成する(結果としてメモリを複製する)ことにより、RAMとスワップメモリ​​の両方を占有するためです。問題は、Raspberry Piではスワップスペースが特に小さい(私が思うに100MBしかない)のに対し、通常はRAMと同じサイズにすることです。

hereおよび hereで説明されているように、スワップスペースは次のように入力して増やすことができます:

  sudo / bin / dd if = / dev / zero of = / var / swap.1 bs = 1M count = 1024sudo / sbin / mkswap /var/swap.1sudo chmod 600 /var/swap.1sudo / sbin / swapon /var/swap.1  

1GBのスワップスペースが提供されます。

これで、最終的に

  python3 setup.py buildpython3setupを使用してビルドおよびインストールできます。 .py install --user  

(システム全体にインストールする場合は、 -userフラグを削除できますが、root権限が必要です。 。

最後に、余分なスワップを削除してデフォルトに戻します。

  sudo swapoff /var/swap.1sudo rm /var/swap.1  
私はラズベリーでこの記憶の問題を数日解決してきました。あなたが私の命を救った男性。
@zurfyxIMHOこの投稿は回答としてマークする必要があります
@jlandercy,に感謝します。私はそれを望んでいましたが、OPがプラットフォームを放棄したのではないかと心配しています。
calocedrus
2019-03-06 14:34:06 UTC
view on stackexchange narkive permalink

パイ用ホイールを使用して取り付けます。最新のscipyではないかもしれませんが、かなり最新です。

  • update pip: pip install pip --upgrade (または pip3 、Pythonバージョンに適応)
  • https://www.piwheels.org/simple/scipy/に移動し、
  • scipyバージョンを選択してターゲットプラットフォーム(例:piゼロ以前のpiの場合はarmv6l、3の場合はarmv7l)
    • 例:3モデルBの scipy-1.2.1-cp35-cp35m-linux_armv7l.whl
  • .whlファイルをダウンロードします
    • 例: wget https://www.piwheels.org/simple/scipy/scipy- 1.2.1-cp35-cp35m-linux_armv7l.whl#sha256 = 270be300233af556e6ee3f55a0ae237df0cb65ac85d47559010d7a9071f2e878
  • .whl ファイルがダウンロードされた場所に移動しますおよび: pip install the-scipy-file.whl

メモ

  • これは仮想環境で実行する(テストしたばかり)
  • これは私が見たり試したりした他のどの方法よりも 高速です。
scruss
2014-01-05 00:10:21 UTC
view on stackexchange narkive permalink

Goldilocksが指摘しているように、Debianには常に最新バージョンのパッケージが付属しているわけではありません。 Netpbmディストリビューションのように本当に古いバージョンが付属している場合があります。これは12年以上前のものです。

これに対処するには2つの方法があります。

  • Live with it :本当に最新バージョンが必要ですか?コードに最新バージョンの関数またはバグ修正が必要な場合、これはオプションではありません。 Debianパッケージは通常かなり安定しているので、コードをそれで動作させることができれば、独自のアップグレードを維持することを心配する必要はありません。 SciPy0.10.0リリースノートは次のとおりです—これらの機能は機能しますか?

  • ソースからビルド:最も簡単な方法現在のリリースのソース依存関係を取得するには、 apt-get build-dep を使用しますが、 / etc / apt / sourcesにソース行が必要です。 .list

    • /etc/apt/sources.list に次の行を追加します: deb-src http:// mirrordirector。 raspbian.org/raspbian/ wheezy main contrib non-free rpi (基本的に、 deb 行と同じですが、 deb-src を使用します。 't、aptは文句を言います。)
    • ここで sudo apt-get build-dep python-scipy を発行します。これにより、投稿に含まれるよりもはるかに多くのパッケージの大きなリストが返されます。エラーメッセージは、依存関係の欠落に関するものである可能性があります。
    • scipyのビルドを再試行してください。
  • ol>

    依存関係の問題がまだある可能性があることに注意してください。現在のバージョン(0.14程度)では、Raspbianが認識しているよりも新しい依存パッケージが必要になる場合があります。可能であれば、 checkinstall のようなツールを使用して、特別な依存関係を持つ新しいバージョンをインストールしたことをRaspbianに通知して、定期的なアップグレードで踏みにじられないようにしてください。このプロセスは少し面倒です。それを行う方法に関するいくつかの指針はここにあります:ソースからDebian / Ubuntuパッケージを構築する方法?

    goldilocks
    2013-07-07 18:58:56 UTC
    view on stackexchange narkive permalink

    私はPythonユーザーではありませんが、古いバージョンの(おそらく)理由は、バージョンの更新に時間がかかりすぎることがDebianポリシーであり、パッケージがあいまいである可能性があるためです(したがって更新がさらに少なくなります) 、さらに、raspbian自体はdebianに比べてかなりあいまいです(したがって、そこにあるパッケージの更新はさらに少なくなります)。つまり、利用可能なリソース(通常はアップストリーム開発者ではない、パッケージを保守する人々)の結果です。

    1時間以上作業した後、エラーが発生しました

    おそらくこれは、1つ以上のモジュールのコンパイルに関する問題ですが、実際にはエラーが何であるかは述べていません。 Pythonモジュールのコンパイルはほとんど piで機能するはずですが、ライブラリが特別にコンパイルされているため、これは珍しいアーキテクチャであることに注意してください。残念ながら、これは以前は気づかなかったバグがどこかで表面化するリスクをもたらします(コンパイルされた言語でバグを見つけたい場合-いくつかのPythonモジュールの一部はCにあります-いくつかの異なるプラットフォームでコードをコンパイルしてみてください、笑...)。犯人を特定するには、もう少し手間がかかり、特定のエラーに注意を払う必要があります。

    Xavier Alexandre
    2020-01-22 19:45:32 UTC
    view on stackexchange narkive permalink

    何度も試行した後、2GbのRaspberry4でスワップサイズを2048に増やすことで、「pipinstallscipy」を使用してscipyをインストールすることができました。

    Taras Vaskiv
    2018-11-16 04:19:03 UTC
    view on stackexchange narkive permalink

    1)スワップを1GBに増やします

      sudo dphys-swapfile swapoffsudo vim / etc / dphys-swapfile  

    CONF_SWAPSIZE = 1024

      sudo dphys-swapfile swapon  

    2)再起動してスワップの変更を適用します

      sudoreboot  

    3)ビルドよりもDockerfileがあります

      FROMpython:3-alpineMAINTAINER codertarasvaskivRUN apk add --no-cache g ++ gfortran python3-dev openblas-dev bashRUN pip install --no-cache-dir numpyRUN pip install --no-cache-dir scipyRUN pip install --no-cache-dir <my custom package>ENTRYPOINT ["bash"]  

    つまり、コンテナでscipyを構築するのに3時間かかるよりも、numpyを構築するのに10分かかります。

    Robin Dinse
    2019-06-30 06:35:14 UTC
    view on stackexchange narkive permalink

    一部のディストリビューション(Arch Linux Armなど)では、 python-scipy python-numpy python-matplotlibなどのコンパイル済みパッケージが利用可能です。 。ディストリビューションのデフォルトであるPythonのバージョンと要件によっては、 python3- * の場合もあります。 pip からではなく、ディストリビューションリポジトリからインストールするために、以前にインストールしたパッケージとそれらの依存関係を削除する必要がある場合があります。 pip は依存関係を削除しないため、Pythonパッケージ pip-autoremove はそのために役立ちます。



    このQ&Aは英語から自動的に翻訳されました。オリジナルのコンテンツはstackexchangeで入手できます。これは、配布されているcc by-sa 3.0ライセンスに感謝します。
    Loading...