Установка pyinterval в Ubuntu - PullRequest
4 голосов
/ 08 марта 2012

Я пытаюсь установить библиотеку python pyinterval. Для этого требуются заголовки crlibm C, которые я установил без ошибок, но, похоже, в корне проблемы.

Когда я бегу:

$ sudo easy_install pyinterval

Я получаю следующее:

Searching for pyinterval
Reading http://pypi.python.org/simple/pyinterval/
Reading http://pyinterval.googlecode.com/
Best match: pyinterval 1.0b21
Downloading http://pypi.python.org/packages/source/p/pyinterval/pyinterval-1.0b21.tar.gz#md5=a65fe9855d3b6b0a9ddcc5b2f1e1e421
Processing pyinterval-1.0b21.tar.gz
Running pyinterval-1.0b21/setup.py -q bdist_egg --dist-dir /tmp/easy_install-K58WK9/pyinterval-1.0b21/egg-dist-tmp-Tp03Mb
ext/crlibmmodule.c: In function ‘crlibm_cospi_rn’:
ext/crlibmmodule.c:45:1: warning: implicit declaration of function ‘cospi_rn’
ext/crlibmmodule.c: In function ‘crlibm_cospi_ru’:
ext/crlibmmodule.c:45:1: warning: implicit declaration of function ‘cospi_ru’
...
ext/crlibmmodule.c: In function ‘crlibm_log1p_rz’:
ext/crlibmmodule.c:59:1: warning: implicit declaration of function ‘log1p_rz’
/usr/bin/ld: /usr/local/lib/libcrlibm.a(addition_scs.o): relocation R_X86_64_32S against `.rodata' can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/libcrlibm.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
error: Setup script exited with error: command 'gcc' failed with exit status 1

Я позвонил:

$ sudo apt-get install python-all-dev

и это не решило проблему.

Ответы [ 4 ]

3 голосов
/ 11 мая 2012

Если у кого-то все еще есть проблемы с этим, вам нужно установить "CPPFLAGS = -fPIC" в "scs_lib / Makefile", а не "./Makefile".

1 голос
/ 16 ноября 2013

Мне кажется, все в порядке:

wget http://lipforge.ens-lyon.fr/frs/download.php/152/crlibm-1.0beta3.tar.gz
tar vfxz crlibm-1.0beta3.tar.gz 
cd crlibm-1.0beta3
export CPPFLAGS=-fPIC
./configure
make
sudo make install
sudo pip install pyinterval
python
>>> from interval import *

Спасибо за ответ.

1 голос
/ 23 марта 2012

У меня была та же проблема, и я обнаружил, что проблема была в crlibm (флаги -fPIC упоминаются в ошибке).

Я закончил установку crlibm из источника и смог получитьустановка работает.Запустив ./configure для crlibm, я вручную отредактировал Makefile, изменив строку «CPPFLAGS =» на «CPPFLAGS = -fPIC».Отсюда я запустил «make», «make install», а затем «sudo easy_install pyinterval».

Я добавлю, что не уверен на 100% в этом решении, и оно не очень элегантно.Я не уверен насчет технических деталей флага -fPIC и того, какой эффект он действительно имеет.

Но он работает.

0 голосов
/ 11 февраля 2013

Я только что прошел установку pyinterval в Ubuntu 12.10, используя приведенные выше предложения для crlibm.

Я попытался добавить -fPIC к CPPFLAGS в make-файле scs_lib, но это не сработало.Я думаю, что более поздние версии crlibm (я использую 1.0beta-4) требуют, чтобы crlibm_private.o также был скомпилирован с -fPIC, поэтому необходимо добавить флаг в CPPFLAGS в Makefile базового каталога

...