我无法将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
那么,我该如何解决呢?感谢。
答案 0 :(得分:4)
这是扭曲构建中的“错误”。它可能是也可能不是一个错误 - 扭曲并不认为它的C扩展是可选的,尽管它们在很大程度上远非必要。如果您只是将PYTHONPATH指向它所在的位置,那么Twisted仍然可以工作,但没有那些C扩展。
答案 1 :(得分:2)
您可以通过评论the following line in setup.py (73)来跳过构建扩展程序:
conditionalExtensions = getExtensions(),
这应该避免收集并尝试构建分散在目录树中的扩展。
答案 2 :(得分:2)
至于现在Twisted trunk可以用PyPy编译好(我使用的是1.6.1-dev0)。 但是,为了安装Twisted,您需要将patch应用于我已提交给stdlib的zipfile.py。
zipfile.py 2.7.1+泄漏文件描述符,因为zipfile.py中使用了面向CPython的编程风格
因此,在使用其他GC模型而不是CPython的PyPy下安装失败。