2016-04-08 12 views
0

私はpip3を使ってpython3にnumpyとscipyをインストールしようとしています。 (herehereを示唆したように)私は、MKLを使用したいので、私は~/.numpy-site.cfgに限り指定した:sudo pip3 install numpyは〜/ .numpy-site.cfgを尊重しません

[mkl] 
library_dirs = /opt/intel/mkl/lib/intel64 
include_dirs = /opt/intel/mkl/include 
mkl_libs = mkl_rt 
lapack_libs = 
extra_compile_args = -march=native 

私は、numpyのをインストールします(成功した)

$ sudo pip3 install numpy 

経由しかし、MKLにはありません設定に表示されます! (予想通り)scipyのダウンロードをインストールする

>>> np.show_config() 
... 
mkl_info: 
    NOT AVAILABLE 
... 

はその後、私は他に何も変更せずに、同じマシン上にvirtualenvのでnumpyのとscipyのダウンロードをインストールするときただし、MKL が見つかっある

numpy.distutils.system_info.NotFoundError: no lapack/blas resources found 

で失敗し、 scipyはうまく動作します。

私の最初の推測では、sudoは$HOMEを受け取っていなかったが、sudo echo $HOMEは私のホームディレクトリを正しく返していた。

何が問題になる可能性がありますか?

+0

使用しているPython実行ファイルが 'pip3'コマンドで使用されているものと同じであることを確認してください(例えば、' head -n1 \ 'pip3 \' 'あなたに伝えてください)。あるいは、正しいピップを使ってインストールすることを忘れないでください。 'sudo python3 -m pip install numpy'やあなたが使っているPython実行ファイル – Evert

+0

アナコンダを使用していない理由がありますか? pipでnumpyをインストールすることは実際には勧められていません – maxymoo

+0

空のmkl情報がある場所のどこかに 'site.cfg'が置かれることはありませんか? – Evert

答えて

0

私の推測は確かに正しいことが判明しました。 sudoは、$HOMEを使用してではありません。 sudo echo $HOMEは、コマンドを実行する前にsudoを呼び出す前にbashを$HOMEに展開したために機能しました。

# In test.sh 
echo "$HOME" 

そして今、私は$HOMEが間違っていることを確認

$ sudo bash test.sh 
/root 

を得る:

次のテストは、しかしトリックをしました。/etc/sudoers(always_set_homeとenv_reset)に多数の設定が設定されていたことがわかりました。これは、sudo -E bash test.shも効果がないことを意味していました。

私は最終的にちょうど働い

$ sudo HOME=/path/to/my/home pip3 install numpy 

でそれをインストールしました。

+0

私は後でこれがRHEL7マシンでは動作するが、Ubuntu 14.04または16.04では動作しないことを発見しました。私はまだそれがUbuntuのために働く方法を手掛かりがありません。私はちょうどソースからインストールを終えた... – Praveen

関連する問題