2016-04-08 6 views
0

Ich versuche numpy und scipy auf python3 mit pip3 zu installieren. Ich möchte MKL verwenden, also habe ich so viel angegeben in ~/.numpy-site.cfg (als here vorgeschlagen und here):sudo pip3 install numpy respektiert nicht ~/.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 

ich dann numpy installieren (erfolgreich) über

$ sudo pip3 install numpy 

Allerdings ist MKL nicht taucht in der Konfiguration auf!

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

Installation scipy versagt anschließend (wie erwartet) mit

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

Allerdings, wenn ich numpy und scipy in einem virtualenv auf demselben Rechner installieren, ohne etwas zu ändern sonst, MKL gefunden wird, und scipy funktioniert gut.

Meine erste Schätzung war, dass Sudo nicht $HOME abholen, aber sudo echo $HOME gibt mein Home-Verzeichnis korrekt zurück.

Was könnte schief gehen?

+0

Stellen Sie sicher, dass die ausführbare Python-Datei dieselbe ist, die im 'pip3'-Befehl verwendet wird (zum Beispiel' head -n1 \ 'was pip3 \' 'Ihnen sagen sollte). Oder stellen Sie sicher, dass Sie den richtigen Pip verwenden, um Dinge zu installieren: 'sudo python3 -m pip install numpy 'oder was auch immer Sie Python-Programm verwenden. – Evert

+0

warum Sie Anaconda nicht benutzen? es ist nicht wirklich empfehlenswert, numpy mit pip zu installieren – maxymoo

+0

Sie haben nicht zufällig eine 'site.cfg' irgendwo mit leeren mkl-info drin? – Evert

Antwort

0

Es stellt sich heraus, dass meine Schätzung in der Tat richtig war. sudoist nicht mit der richtigen $HOME. sudo echo $HOME funktionierte, weil bash erweitert $HOME vor dem Aufruf von sudo, um den Befehl auszuführen.

Der folgende Test hat den Trick aber:

# In test.sh 
echo "$HOME" 

Und ich bekomme jetzt

$ sudo bash test.sh 
/root 

die bestätigt, dass $HOME falsch ist. Es stellte sich heraus, dass einige Einstellungen in/etc/sudoers (always_set_home und env_reset) vorgenommen wurden, was dazu führte, dass auch sudo -E bash test.sh keine Wirkung hatte.

ich es schließlich nur mit

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

, die funktionierte.

+0

Später entdeckte ich, dass dies auf einer RHEL7-Maschine funktionierte, aber nicht auf einem Ubuntu 14.04 oder 16.04. Ich habe immer noch keine Ahnung, wie ich es für Ubuntu zum Laufen bringen kann. Ich habe gerade von der Quelle installiert ... – Praveen