Ich habe diese Frage gepostetursprünglich auf StackOverflow, aber ein Benutzer hat mir vorgeschlagen, es hierher zu verschieben, also los geht’s!
Ich habe ein Konto auf einem Remotecomputer ohne Rootberechtigungen und musste dort eine lokale Version von Python (der Remotecomputer hat eine Python-Version, die mit einigen meiner Codes nicht kompatibel ist), Numpy und Scipy installieren. Ich versuche seit gestern, Numpy lokal zu installieren, ohne Erfolg.
Ich habe erfolgreich eine lokale Version von Python (2.7.3) in /home/myusername/.local/ installiert, sodass ich mit auf diese Version von Python zugreifen kann /home/myusername/.local/bin/python
. Ich habe zwei Möglichkeiten ausprobiert, Numpy zu installieren:
Ich habe die neueste stabile Version von Numpy von der offiziellen Webseite heruntergeladen, sie entpackt, bin in den entpackten Ordner gegangen und habe Folgendes getan:
/home/myusername/.local/bin/python setup.py install --prefix=/home/myusername/.local
. Allerdings erhalte ich den folgenden Fehler, dem eine Reihe weiterer Fehler (die von diesem herrühren) folgen: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
Da ich nicht wirklich wusste, was das bedeutete (außer, dass der Fehler anscheinend mit der LAPACK-Bibliothek zu tun hat), habe ich einfach denselben Befehl wie oben ausgeführt, jetzt aber LDFLAGS='-fPIC' eingegeben, wie vom Fehler vorgeschlagen, d. h. ich habe es getan
LDFLAGS="-fPIC" /home/myusername/.local/bin/python setup.py install --prefix=/home/myusername/.local
. Ich habe jedoch denselben Fehler erhalten (außer, dass das Präfix -fPIC nach dem obigen gcc-Befehl hinzugefügt wurde).Ich habe versucht, es mit Pip zu installieren (d. h., ich habe
/home/myusername/.local/bin/pip install numpy
/ ausgeführt, nachdem Pip erfolgreich in meinem lokalen Pfad installiert wurde). Allerdings erhalte ich genau denselben Fehler.
Ich habe im Internet gesucht, aber keiner der Fehler schien meinem ähnlich zu sein. Meine erste Vermutung ist, dass dies mit einem Codeteil zu tun hat, der Root-Berechtigungen zur Ausführung benötigt, oder vielleicht mit einem Problem mit der Version der LAPACK-Bibliotheken oder mit gcc (gcc Version 4.1.2 ist auf dem Remotecomputer installiert).
Kann jemand helfen?
Antwort1
Nein, beim Kompilieren von Numpy sind keine Root-Rechte erforderlich. Ich habe vor kurzem genau dasselbe auf meinem Computer ohne Root-Rechte gemacht. Ich glaube nicht, dass der --prefix
Befehl erforderlich ist. Versuchen Sie --user
stattdessen, die Option mit zu verwenden setup.py install --user
. Diese Option führt automatisch aus, was Sie versuchen.
Wenn das nicht hilft, würde ich Ihre Version von gcc und LAPACK überprüfen. Wenn Sie diese nicht aktualisieren können, sollten Sie vielleicht eine ältere Version von Numpy ausprobieren.