利用virtualenv打造高性能可移植的pypy

利用virtualenv打造高性能可移植的pypy

一、概念介绍
virtualenv就不过多介绍,库如其名,一个独立的虚拟环境。
pypy是一个高性能的python解释器,直接给python插了对儿翅膀,飞上天与太阳肩并肩。之前看过一个博客,有大牛专门做过相关测试,python+pypy的运行效率仅次于java,优于其他解释性或称作脚本语言的编程语言,下图是官方对pypy解释器的几个有点总结,楼主比较懒就不做翻译了。
附上各自官网或文档地址
pypy: http://pypy.org/index.html
virtualenv: http://virtualenv.readthedocs.io/en/stable/
所以楼主就按照文档的说的,又下载了个portable版本 PyPy 5.6 x86_64,下载地址: https://github.com/squeaky-pl/portable-pypy#portable-pypy-distribution-for-linux,这个版本很完美,没有报错
pypy的安装很简单,就一步:解压缩就ok,步骤如下:
1>解压缩
2>移动解压后的目录到/usr/local/目录下,然后在/usr/bin/目录下做个命令软连接,当然此处可以不移动目录,直接做软链,不过还是建议放到/usr/local下,统一管理
移动目录
做pypy软连接
3>这时就可以在命令行输入pypy直接进入解释器环境了
2、安装virtualenv
两种安装方式:1>如果服务器已装pip,那直接命令行pip install virtualenv;2>上https://pypi.python.org/pypi/virtualenv/下载source包,解压缩,进入目录然后命令行输入python setup.py install
楼主的服务器网络爆差,第一种方式一直网络超时,只能乖乖下载默默安装。virtualenv的使用就不多讲了,文章开头已附上使用文档链接,自行点开脑补吧
三、利用virtualenv创建pypy可移植编译环境
按照之前的步骤安装好各个模块后,直接在命令行输入 virtualenv venv_pypy27 -p pypy –no-site-packages,就会在当前目录下生成venv_pypy27目录,这个目录就是pypy虚拟编译环境,目录结构如下
使用方式有两种:
1、直接命令行输入 source bin/activate ,即可进入独立的解释器环境(实际原理就是更改了python环境变量),此时运行pypy -c “import time”都是在该沙箱环境中执行的,pip install等命令都会将包安装到该独立的pypy解释器环境,退出该沙箱环境,命令行输入deactivate
2、在运行某些python脚本或启动某些服务时,直接指定该pypy环境的绝对路径,如下是楼主启动django服务时输入的命令,这种方式还是比较通用的
四、pypy沙箱环境移植
既然是沙箱环境移植就很方便了,把该环境整个打个包,上传到其他服务器相同目录下解压即可直接使用,如果没有办法放到相同目录下,则上传到服务器后,需要修改bin目录下的activate文件,如下图所示,找到该变量,然后修改为该沙箱环境所在的绝对路径。
其次还得修改bin目录下的pip文件,毕竟pip还是需要经常用到来管理包的,打开pip文件,修改文件头指向的解释器路径,如下图,修改为该沙箱环境的pypy命令的绝对路径即可
五、注意的问题
楼主本来以为按照步骤四移植后直接就能使用pypy了,结果在沙箱环境下输入pypy后报错
原因就是步骤二中提到的,此处的解决方式:1、要么在该服务器再安装一遍pypy编译器 2、要么写个shell脚本关联需要的系统lib文件

why are canada goose coats so warm https://www.canadagoosessale.org Canada Goose mens sale 2015,

Comments are closed.