Подтвердить что ты не робот

Включить опцию pip install

Я пытаюсь установить библиотеку pyleargist. Для этого требуется установить еще один lib libfftw3, который я установил вручную. Поскольку у меня нет привилегии root, я должен установить libfftw3 в мой домашний каталог: ~/usr/include и ~/usr/lib. Затем я следую этому сообщению: https://superuser.com/info/242190/how-to-install-matplotlib-on-os-x, добавил:

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

Чтобы pip знал, что ему нужно проконсультироваться с /usr, чтобы получить файлы include (.h) и lib (.a, *.so). Однако во время работы pip install --user pyleargist он жалуется:

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

Я предполагаю, что произошло, что путь неправильный, так что он не может найти файлы *.c (я думаю, pip должен был загружать файл где-нибудь, но не уверен, где он).

Итак, мои вопросы таковы: 1) в этом конкретном случае, как установить pyleargist с include и lib в под ~/usr? 2) в более общем плане, как можно предоставить дополнительный путь для pip, чтобы он знал, где можно получить дополнительные файлы include или libs, если они не найдены в пути по умолчанию?

p.s Я нахожусь на машине ubuntu без привилегии sudo.

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

4b9b3361

Ответ 1

pip имеет флаг --global-option

Вы можете использовать его для передачи дополнительных флагов в build_ext.

Например, чтобы добавить флаг -I:

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

Ответ 2

Если у вас нет корня, вы можете получить виртуальную среду нет корня, чтобы получить один, и ваш путь будет в доме

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

тогда ваш путь будет установлен в вашем доме:

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']
>>> 

Ответ 3

Это была полезная тема. Чтобы добавить к этому, вы также можете использовать pip без root, если вы передаете флаг --user в конце:

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

Например, если вы используете python-v2.7, указанная выше команда устанавливает пакет python в /home/username/.local/lib/python2.7/site-packages