2013-09-28 4 views
12

J'essaie d'installer une bibliothèque pyleargist. Il faut installer manuellement une autre lib libfftw3 que j'ai installée. Comme je n'ai pas le privilège root, je dois installer libfftw3 sous mon répertoire personnel: ~/usr/include et ~/usr/lib. Puis je suivre ce post: https://superuser.com/questions/242190/how-to-install-matplotlib-on-os-x, a ajouté:pip installer personnalisé include path

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

Alors que pip sait-il de consulter /usr pour obtenir include (fichiers .h) et lib ( .a, * .so). Cependant, lors de l'exécution pip install --user pyleargist, il se plaint:

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 

Je pense que ce qui est arrivé est que le chemin est incorrect de sorte qu'il ne peut pas trouver les fichiers *.c (je pense que pip devrait avoir téléchargé le fichier quelque part, mais pas sûr où est-ce que c'est).

Mes questions sont les suivantes: 1) dans ce cas particulier, comment puis-je installer pyleargist avec include et le chemin lib sous ~/usr? 2) plus généralement, comment peut-on fournir un chemin supplémentaire pour pip afin qu'il sache où trouver les fichiers d'inclusion supplémentaires ou les libs s'il n'est pas trouvé dans le chemin par défaut? Je suis sur une machine ubuntu sans privilège sudo.

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

+0

comment êtes-vous allé? Avez-vous toutes les dépendances manquantes dans ~/usr/..? Les versions que vous avez là sont-elles compatibles avec les dépendances installées sur le système? – drevicko

+0

@drevicko Oui. Il n'y a que de dépendance et je le mets dans '~/usr /'. Ils sont compatibles. Je le connais car je peux l'installer sur d'autres machines où j'ai le privilège 'sudo'. – clwen

+0

Quelle est la commande 'gcc' qui a généré l'erreur? Aussi l'emplacement de 'leargist.c' et s'il existe quelque part dans votre' ~/usr/'ou ailleurs? – drevicko

Répondre

0

si vous n'avez pas root, vous pouvez obtenir un virtual enviroment pas de racine est nécessaire pour obtenir un et votre chemin sera dans la maison

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 

alors votre chemin est fixé dans votre maison:

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 possède un --global-option drapeau

Vous pouvez l'utiliser pour passer des indicateurs supplémentaires à build_ext.

Par exemple, pour ajouter un drapeau -I:

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

C'était un fil utile. Juste pour ajouter à cela, vous pouvez également utiliser pip sans racine si vous passez le drapeau --user à la fin:

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

Par exemple, si vous utilisez-v2.7 python, la commande ci-dessus installe la paquet python à /home/username/.local/lib/python2.7/site-packages