Python Pypy 3.2枕头问题

Python Pypy 3.2枕头问题,python,python-3.x,pypy,Python,Python 3.x,Pypy,我在Ubuntu服务器14.04上 我正在尝试使用PyPy3.2运行django应用程序 但每当我尝试Py3 manage.py runserver 0:8000时,它都会说: (fields.E210)无法使用ImageField,因为未安装枕头。 提示:获取枕头或运行命令“pip安装枕头” 但如果我尝试安装枕头: PY3-m pip安装枕 它说: 要求已经是最新的:Pillow in/usr/local/lib/python3.4/dist-packages/Pillow-2.9.0-py3

我在Ubuntu服务器14.04上

我正在尝试使用PyPy3.2运行django应用程序

但每当我尝试Py3 manage.py runserver 0:8000时,它都会说: (fields.E210)无法使用ImageField,因为未安装枕头。 提示:获取枕头或运行命令“pip安装枕头”

但如果我尝试安装枕头: PY3-m pip安装枕

它说: 要求已经是最新的:Pillow in/usr/local/lib/python3.4/dist-packages/Pillow-2.9.0-py3.4-linux-x86_64.egg

然后我下载了源代码并尝试: py3安装程序.py安装

上面写着: 属性错误安装布局

我不知道该怎么办


_ 你应该用pypy3作为解释器来创建一个合适的virtualenv。不要运行django安装程序——在virtualenv内部,pip应该只适用于django和Piddle——而没有像
pypy3-m pip
这样的奇怪操作,因为它们会像你所拥有的一样容易崩溃

要创建一个默认Python解释器为pypy3的virtualenv,只需执行
virtualenv-p pypy3 myprojectdir
——并使用
source myprojectdir/bin/activate
——对于惰性类型,有
VirtualEnvrapper
,它会创建更多的快捷方式。从那以后,
pip install
anythins将安装到此目录中,而不会弄乱(或检查)任何其他Python的系统包

这就是拥有一个健全的环境的方法——尽管看起来你只是试图超越现有的优势——互联网上有人提到枕头与Pypy(当然还有python3)兼容——但我找不到任何关于使用pypy3运行枕头的内容

通过在我的Linux系统上安装
pypy3-devel
,并手动设置CFLAGS变量(我在这里使用的是fedora-在Ubunut上,您应该有一个
py3-dev
包),我可以让它无误地构建。但即使它确实构建了,它也无法在pypy上运行,引发了
ImportError:无法加载扩展模块'PIL/_imaging.pypypy3-24.so':PIL/_imaging.pypypy3-24.so:未定义符号:PyExc_SystemError
;(在Fedora22i上设置
CFLAGS=-I/usr/lib64/pypy3-2.4.0/include/
检查您的
pypy3开发包,查看这些include文件在Ubuntu上的位置)


TL;DR对于您的项目,可以使用pypy2.x或常规的cPython3.4(当然这是首选),总有一天依赖关系会迎头赶上。不管是哪种方式,Django都不应该从Pypy的JIT中获益太多——一个负载沉重的Web服务器将必须处理数据库连接可伸缩性(而不是Python)和良好的缓存(也可以在Python之上的层上正确配置——请看“varnish”)。如果你对你的站点不使用PyPy的站点进行了大量的处理,请考虑使用CELLIE/RPCS在另一个进程中运行瓶颈算法,并用PyPy/Cython/纯C编写程序的一部分。但有趣的是,我才刚刚开始建立这个网站。我所拥有的只是一个基本模板和一个页脚模板,它执行查询并迭代其内容,用“最后4个添加的产品”填充页脚。它不能承受20req/s。数据库处理百分比小于0.5%。而且似乎一个简单的页面访问暂时需要10%的处理。这不会发生在我做同样事情的php页面上,查询数据库,然后在显示内容的网页上迭代。我将nginx与uwsgi一起使用。改进:使用缓存取得了非常好的效果!允许我每秒有100多个请求!!但对于django的处理量,我还是有点难过=(