Как установить витую 10.2.0 с pypy 1.4.1? - PullRequest
3 голосов
/ 26 февраля 2011

Я не могу установить Twisted 10.2.0 на мою коробку Ubuntu.После загрузки искаженного источника я выдаю команду: pypy setup.py install.После этого я получаю ошибку:

building 'twisted.runner.portmap' extension
creating build/temp.linux-x86_64-2.5
creating build/temp.linux-x86_64-2.5/twisted
creating build/temp.linux-x86_64-2.5/twisted/runner
cc -I/builds/pypy-1.4.1-linux64/include -c twisted/runner/portmap.c -o build/temp.linux-x86_64-2.5/twisted/runner/portmap.o
cc -shared build/temp.linux-x86_64-2.5/twisted/runner/portmap.o -o build/lib.linux-x86_64-2.5/twisted/runner/portmap.pypy-14.so
/usr/bin/ld.bfd.real: build/temp.linux-x86_64-2.5/twisted/runner/portmap.o: relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC
build/temp.linux-x86_64-2.5/twisted/runner/portmap.o: could not read symbols: Bad value
collect2: ld returned 1 exit status
error: command 'cc' failed with exit status 1

Итак, как я могу это исправить?Спасибо.

Ответы [ 3 ]

4 голосов
/ 26 февраля 2011

Это «ошибка» в витой сборке.Это может быть или не быть ошибкой - Twisted не считает, что расширения C необязательны, хотя в большинстве случаев они далеки от необходимости.Twisted все равно будет работать, если вы просто укажете PYTHONPATH туда, где он находится, но без этих расширений C.

2 голосов
/ 09 октября 2011

На данный момент Twisted trunk может быть скомпилирован нормально с PyPy (я использовал 1.6.1-dev0).Однако для установки Twisted вам необходимо применить patch к zipfile.py, который я отправил в stdlib.

zipfile.py 2.7.1+ утечки файловых дескрипторов из-за CPython-ориентированный стиль программирования, используемый в zipfile.py

Поэтому установка не удалась в PyPy, который использует другую модель GC, чем CPython.

2 голосов
/ 26 февраля 2011

Вы можете пропустить строительные расширения, комментируя следующую строку в setup.py (73) :

       conditionalExtensions = getExtensions(),

Это позволит избежать сбора и попыток создания расширений, разбросанных по дереву каталогов.

...