2013-09-28 6 views
12

Sto tentando di installare una libreria pyleargist. Richiede un'altra lib libfftw3 da installare manualmente che ho installato. Poiché non ho il privilegio di root, devo installare libfftw3 nella mia home directory: ~/usr/include e ~/usr/lib. Poi seguo questo post: https://superuser.com/questions/242190/how-to-install-matplotlib-on-os-x, ha aggiunto:installazione di pip personalizzata include percorso

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

In modo che pip sa che deve rivolgersi per ottenere il /usr include (file .h) e lib ( .a, * .so file). Tuttavia, durante l'esecuzione di pip install --user pyleargist, si lamenta:

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 

Credo che quello che è successo è che il percorso non è corretto in modo che non è possibile trovare i file *.c (credo pip dovrebbe aver scaricato il file da qualche parte, ma non è sicuro dove è).

Quindi le mie domande sono le seguenti: 1) in questo caso particolare, come posso installare pyleargist con include e lib percorso sotto ~/usr? 2) più in generale, come si può fornire un percorso aggiuntivo per pip in modo che sappia dove ottenere i file di inclusione aggiuntivi o le librerie libere se non si trovano nel percorso predefinito?

p.s Sono su una macchina ubuntu senza privilegio sudo.

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

+0

come sei andato? Hai tutte le dipendenze mancanti in ~/usr/..? Le versioni che hai lì sono compatibili con le dipendenze installate sul sistema? – drevicko

+0

@drevicko Sì. C'è solo sulla dipendenza e l'ho messo in ~ ~/usr/'. Sono compatibili Lo so perché posso installarlo su altre macchine dove ho privilegi 'sudo'. – clwen

+0

Qual è il comando 'gcc' che ha generato l'errore? Anche la posizione di 'leargist.c' e se esiste da qualche parte nel tuo ~ ~/usr /' o altrove? – drevicko

risposta

0

se non avete di root è possibile ottenere un virtual enviroment non è necessaria alcuna radice per ottenere uno e il vostro percorso sarà in casa

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 

allora il vostro percorso è impostato nella vostra casa:

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 ha una bandiera --global-option

È possibile utilizzarlo per passare altri flag a build_ext.

Per esempio, per aggiungere un flag -I:

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

Questo è stato un filo utile. Giusto per aggiungere a questo, è anche possibile utilizzare pip senza radice se si passa la bandiera --user alla fine:

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

Ad esempio, se si sta utilizzando python-v2.7, il comando precedente installa il pacchetto python su /home/username/.local/lib/python2.7/site-packages