2013-09-28 11 views
12

Próbuję zainstalować bibliotekę pyleargist. Wymaga zainstalowania ręcznie zainstalowanej biblioteki lib libfftw3. Ponieważ nie mam uprawnień roota, muszę zainstalować libfftw3 w moim katalogu domowym: ~/usr/include i ~/usr/lib. Potem śledzę ten post: https://superuser.com/questions/242190/how-to-install-matplotlib-on-os-x, dodał:Instalowanie potoku dostosowanego zawiera ścieżkę

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

Więc pip wie, że musi skonsultować /usr uzyskać include (pliki .h) i lib ( .a, * .so plików). Jednak podczas jazdy pip install --user pyleargist, to narzeka:

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 

myślę, co się stało jest to, że ścieżka jest niepoprawna tak, że nie może znaleźć *.c plików (myślę pip powinien pobrać plik gdzieś ale nie jestem pewien gdzie to jest).

więc moje pytania są następujące: 1) w tym konkretnym przypadku, w jaki sposób mogę zainstalować pyleargist z include i lib ścieżkę pod ~/usr? 2) bardziej ogólnie, w jaki sposób można zapewnić dodatkową ścieżkę dla pip, aby wiedzieć, skąd pobrać dodatkowe pliki lub biblioteki dołączane, jeśli nie zostały znalezione w domyślnej ścieżce?

p.s Jestem na maszynie ubuntu bez uprawnienia sudo.

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

+0

jak poszło? Czy masz wszystkie brakujące zależności w ~/usr/..? Czy wersje, które tam masz, są kompatybilne z zależnościami zainstalowanymi w systemie? – drevicko

+0

@drevicko Tak. Jest tylko zależność i umieściłem ją w '~/usr /'. Są kompatybilne. Znam go, ponieważ mogę go zainstalować na innych komputerach, na których mam przywilej "sudo". – clwen

+0

Co to jest polecenie 'gcc', które wygenerowało błąd? Również lokalizacja 'leargist.c' i czy istnieje gdzieś w twoim' ~/usr/'lub gdziekolwiek indziej? – drevicko

Odpowiedz

0

jeśli nie mają korzenia można uzyskać virtual enviroment jest potrzebny żaden korzeń, aby uzyskać jeden i ścieżka będzie w domu

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 

wówczas ścieżka jest ustawiony w twoim domu:

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 ma flagę --global-option

Możesz jej użyć do przekazania dodatkowych flag do build_ext.

Na przykład, aby dodać -I flagę:

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

To był pomocny wątek. Wystarczy dodać do tego, można również użyć pip bez korzenia jeśli przejdą flagę --user na koniec:

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

Na przykład, jeśli używasz python-v2.7, powyższe polecenie zainstaluje pakiet python do /home/username/.local/lib/python2.7/site-packages