4

root権限のないリモートコンピューターにアカウントがあり、ローカルバージョンのPython(リモートコンピューターには、私が持っている一部のコードと互換性のないバージョンのPythonがあります)、NumpyおよびScipyをインストールする必要がありました。昨日から numpy をローカルにインストールしようとしましたが、成功しませんでした。

Python のローカル バージョン (2.7.3) を /home/myusername/.local/ に正常にインストールしたので、このバージョンの Python にアクセスするには、/home/myusername/.local/bin/python. Numpy をインストールする 2 つの方法を試しました。

  1. Numpy の最新の安定バージョンを公式 Web ページからダウンロードして解凍し、解凍したフォルダーに入って、次のことを行いました/home/myusername/.local/bin/python setup.py install --prefix=/home/myusername/.local。ただし、次のエラーが発生し、その後に一連の他のエラーが続きます(これに由来します):

    gcc -pthread -shared build/temp.linux-x86_64-2.7/numpy/core/blasdot/_dotblas.o
    -L/usr/local/lib -Lbuild/temp.linux-x86_64-2.7 -lptf77blas -lptcblas -latlas 
    -o build/lib.linux-x86_64-2.7/numpy/core/_dotblas.so
    /usr/bin/ld: /usr/local/lib/libptcblas.a(cblas_dptgemm.o): relocation 
    R_X86_64_32 against `a local symbol' can not be used when making a shared 
    object; recompile with -fPIC
    

    これが何を意味するのかよくわかりません (エラーが明らかに LAPACK ライブラリに関係していることを除いて)、上記と同じコマンドを実行しましたが、エラーで示唆されているように、LDFLAGS='-fPIC' を入力しました LDFLAGS="-fPIC" /home/myusername/.local/bin/python setup.py install --prefix=/home/myusername/.local。ただし、同じエラーが発生しました (上記の gcc コマンドの後にプレフィックス -fPIC が追加されたことを除いて)。

  2. pip を使用してインストールしようとしました。つまり、/home/myusername/.local/bin/pip install numpyローカル パスに pip を正常にインストールした後に / を実行しました)。ただし、まったく同じエラーが発生します。

ウェブで検索しましたが、私のようなエラーは見当たりませんでした。私の最初の推測では、これは root パーミッションを実行する必要があるコードの一部、または LAPACK ライブラリのバージョンに問題がある可能性があります。

誰か助けて?

4

3 に答える 3

3

エラーメッセージは、ATLASライブラリが-fPICフラグを使用してビルドされていないことを示しています。つまり、Python拡張モジュールのような共有ライブラリにリンクすることはできません。-fPICフラグを使用してATLASを再構築する必要があります。ATLASのドキュメントには、その方法が記載されています。

于 2012-06-05T09:04:23.270 に答える
2

ソースから構築するのは一種の苦痛です。それを避けることは可能ですか?

x86コンピューター(Intel、AMDなど)にインストールしようとしていると仮定した場合、rootがある別のx86コンピューターにPythonをインストールしてから、Pythonインストールのtarアーカイブを作成し、tarをにコピーしてください。他のコンピューター、およびtarアーカイブを解凍しますか?

上記の問題は、ビルド済みのPythonに、ライブラリを探す場所のハードコードされたパスがある可能性があることです。ライブラリが含まれている必要がある場合があります/usr/share。ちょっとしたハックですが、chroot刑務所を作ってPythonを実行できるかもしれません。

Enthought Python Distribution(EPD)もご覧ください。EPDインストーラーは、EPDをインストールする場所を尋ねるだけで、そこにインストールすると思います。

http://www.enthought.com/products/epdgetstart.php?platform=linux

EPDの無料版があります。64ビットが必要な場合はEPDの料金を支払う必要がありますが、32ビットが機能する場合は、EPDFreeで十分な場合があります。

http://www.enthought.com/products/epd_free.php

www.PS Enthought Webサイトは、 !で始まらないURLを拒否しているようです。これは、最初にを挿入するように編集しない限り、一部のGoogle検索リンクが機能しないことを意味しますwww.。彼らはすぐにこれを修正すると確信しています。

于 2012-06-05T01:55:33.317 に答える
0

numpy と scipy を有効にしてローカルの Python バージョンをビルドするには、EasyBuild を調べてください。 http://hpcugent.github.com/easybuild/を参照してください。

それは基本的にすべての厄介なものをあなたから取り除きます。少し設定する必要があるだけです(たとえば、ソフトウェアを最終的にどこに置きたいかを指定します)。その後、単一のパッケージで選択したパッケージでPythonを構築できます。指図。

于 2012-06-20T13:16:54.483 に答える