关于pypy这个东西,搞python有段时间的人应该都知道,我博客之前也写过两篇pypy的文章,有兴趣的可以看看:
- 什么是pypy
- pypy运行django mysql简单教程
这篇文章主要介绍如何安装一个基于pypy的虚拟环境(virtualenv).
1. 安装virtualenv
virtualenv的安装比较简单,直接 pip install virtualenv 即可。 可以参考这篇文章: 使用virtualenv创建虚拟python环境
2. 下载pypy
到这里:http://pypy.org/download.html ,下载linux binary的pypy包, 当前最新是2.0.2。然后 tar -xvf 文件名 解压缩。建议不要放到tmp下,因为后面生成的虚拟环境会引用其中的include文件夹,而tmp中的文件重启后会消失。我可是踩到了这个坑。
3. 生成虚拟的基于pypy的环境
到你想要存放虚拟环境的路径下执行:
virtualenv --no-site-packages-p/home/the5fire/pypy-2.0.2/bin/pypypypy-env
这样就成功创建了一个基于pypy的虚拟环境,基于pypy的概念就是指默认的python解释器就是pypy。
cd到pypy-env中,激活虚拟环境: . bin/active ,然后执行python进入交互模式,是不是发现多了一些提示信息,提醒你目前的pypy版本是啥,等一些信息。
4. 对Django和tornado的支持
按照本文一开始提到的第二篇文章,把相关的包直接放到pypy-env下面的site-packages中,测试Djang1.3和1.5均没问题,只是连接sqlite3的数据库。tornado也可以正常使用。
到此为止唯一的问题就是关于MySQL的支持,还是有些问题。按照之前的方法安装好后调用时总是会出现 Segmentation fault (core dumped) 的错误。
5. 关于内存的占用
之所以重新开始折腾pypy,除了有工作上的研究需要之外,还有一个目的就是要减少我blog对内存的占用。看到网上有人提到说pypy可以减少内存的使用。不过我尝试用pypy启动了我的blog程序之后发现仅仅是一个进程就占用了60M左右的内存,这可是之前启动是占用内存的3倍。看来减少内存的说法并不准确,或许需要再次调研。
更新: 关于Mysql的支持可以看这篇文章 pypy2.0.2成功运行Django1.5 Mysql