2013-09-28 10 views
12

Ich versuche, eine Bibliothek pyleargist zu installieren. Es erfordert eine andere lib libfftw3 manuell installiert werden, die ich installiert habe. Da ich die root-Berechtigung nicht habe, muss ich libfftw3 unter meinem Home-Verzeichnis installieren: ~/usr/include und ~/usr/lib. Dann folge ich diesen Beitrag: https://superuser.com/questions/242190/how-to-install-matplotlib-on-os-x, fügte hinzu:pip installieren angepasst Include Pfad

export LDFLAGS="-L~/usr/lib" 
export CFLAGS="-I~/usr/include 

Damit pip weiß es /usr zu beraten haben, um die enthalten (.h-Dateien) und lib ( .a, * .so-Dateien). Doch während pip install --user pyleargist läuft, klagt sie über:

gcc-4.4.real: src/leargist.c: No such file or directory 
gcc-4.4.real: no input files 
error: command 'gcc' failed with exit status 1 

Ich denke, was passiert ist, dass der Weg falsch ist, so dass es nicht die *.c Dateien finden kann (ich glaube, pip sollte die Datei irgendwo heruntergeladen haben, aber nicht sicher, wo ist es).

Also folgend meine Fragen sind: 1) in diesem speziellen Fall, wie kann ich pyleargist mit include und lib Pfad unter ~/usr installieren? 2) allgemeiner, wie kann man einen zusätzlichen Pfad für pip bereitstellen, so dass er weiß, wo die zusätzlichen Include-Dateien oder libs zu finden sind, wenn sie nicht im Standardpfad gefunden werden?

p.s Ich bin auf einer ubuntu Maschine ohne sudo Privileg.

ref:
https://pypi.python.org/pypi/pyleargist/1.0.1
http://www.fftw.org/

+0

Wie bist du gegangen? Haben Sie alle fehlenden Abhängigkeiten in ~/usr/..? Sind die Versionen, die Sie dort haben, mit Abhängigkeiten kompatibel, die auf dem System installiert sind? – drevicko

+0

@drevicko Ja. Es gibt nur eine Abhängigkeit und ich lege es in '~/usr /'. Sie sind kompatibel. Ich weiß es, weil ich es auf anderen Maschinen installieren kann, wo ich Sudo-Privilegien habe. – clwen

+0

Was ist der 'gcc' Befehl, der den Fehler erzeugt hat? Auch der Speicherort von 'leargist.c' und wenn es irgendwo in Ihrem' ~/usr/'oder anderswo existiert? – drevicko

Antwort

0

, wenn Sie root nicht haben Sie eine virtual enviroment ist kein root benötigt bekommen kann ein und Ihr Weg wird

curl -O https://pypi.python.org/packages/source/v/virtualenv/virtualenv-1.10.1.tar.gz 
tar xvfz virtualenv-1.10.1.tar.gz 
cd virtualenv-1.10.1.tar.gz 
python virtualenv.py myVE 

dann in zu Hause sein, um Ihren Weg ist in Ihrem Hause eingestellt:

cd myVE/bin 
./python 

>>> import sys 
>>> sys.path 
['', '/home/foobar/temp/virtualenv-1.10.1/myVE/lib/python33.zip', '/home/foobar/temp/virtualenv-1.10.1/myVE/lib/python3.3', '/home/foobar/temp/virtualenv-1.10.1/myVE/lib/python3.3/plat-linux', '/home/foobar/temp/virtualenv-1.10.1/myVE/lib/python3.3/lib-dynload', '/usr/lib64/python3.3', '/usr/lib/python3.3', '/usr/lib/python3.3/plat-linux', '/home/foobar/temp/virtualenv-1.10.1/myVE/lib/python3.3/site-packages'] 
>>> 
15

pip hat eine --global-option Flagge

Sie können damit zusätzliche Flags an build_ext übergeben.

Zum Beispiel einen -I Flag hinzuzufügen:

pip install --global-option=build_ext --global-option="-I/home/users/abc/include/" pyOpenSSL 
0

Das war ein hilfreicher Faden. Nur hinzufügen, auf diesem können Sie auch pip ohne root verwenden, wenn Sie die --user Flagge am Ende passieren:

pip install --global-option="-I/home/users/abc/include/" mpi4py --user 

Zum Beispiel, wenn Sie Python-v2.7 verwenden, der obige Befehl installiert das Python-Paket zu /home/username/.local/lib/python2.7/site-packages