この質問を投稿しました元々はStackOverflowに掲載されていたですが、ユーザーからここに移動するよう提案されたので、ここに移動しました。
私はリモート コンピューターにルート権限のないアカウントを持っており、そこに Python のローカル バージョン (リモート コンピューターには、私が持っている一部のコードと互換性のないバージョンの Python があります)、Numpy、および Scipy をインストールする必要がありました。昨日から Numpy をローカルにインストールしようとしていますが、成功していません。
/home/myusername/.local/ にローカル バージョンの Python (2.7.3) を正常にインストールしたので、 を実行してこのバージョンの Python にアクセスします/home/myusername/.local/bin/python
。Numpy をインストールする 2 つの方法を試しました。
公式 Web ページから Numpy の最新の安定バージョンをダウンロードし、解凍して、解凍したフォルダーに移動して、次の操作を実行しました
/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 が追加されました)。pip を使用してインストールしようとしました (つまり、
/home/myusername/.local/bin/pip install numpy
ローカル パスに pip を正常にインストールした後、/ を実行しました)。ただし、まったく同じエラーが発生します。
Web で検索してみましたが、私のエラーと似たようなエラーはありませんでした。私の最初の推測は、これは実行にルート権限が必要なコードの一部に関係しているか、LAPACK ライブラリのバージョンまたは gcc (リモート コンピュータには gcc バージョン 4.1.2 がインストールされています) に問題があるのではないかということです。
誰か助けて?
答え1
いいえ、numpy をコンパイルするときには、ルート権限は必要ありません。少し前に、自分のコンピューターでまったく同じことをルート権限なしで実行しました。 コマンドは必要ないと思います。の代わりに オプション--prefix
を使用してみてください。このオプションは、実行しようとしていることを自動的に実行します。--user
setup.py install --user
それでも問題が解決しない場合は、gcc と LAPACK のバージョンを確認してください。これらを更新できない場合は、numpy の古いバージョンを試してみるとよいでしょう。