Conda中安装pypy
# 创建一个新的Conda环境并配置pypy
conda -n pypy3 -c conda-forage pypy
# 激活pypy3环境
conda activate pypy3
# 一些使用的库可能需要用以下命令来重新pip install到pypy库里
pypy -m pip install [packages]
pypy测试
图片转换测试
以下是我用来转换图片格式的脚本
import os
import time
from PIL import Image
def Bmp2Png(file_path):
for fileName in os.listdir(file_path):
if fileName.split('.')[1] in ['bmp', 'BMP']:
new_fileName = fileName.split('.')[0] + '.png'
im = Image.open(fileName)
im.save(new_fileName)
print("Finish convert")
def main():
start_time = time.perf_counter()
file_path = ".\\"
try:
Bmp2Png(file_path)
except:
print("It's not a img file")
end_time = time.perf_counter()
print("PIL costs %f s" % (end_time - start_time))
if __name__ == '__main__':
main()
将三张5.93MB的屏幕截图生成的.bmp位图进行.png格式的转换,测试结果如下
pypy环境:PIL costs 0.556925 s
CPython环境: PIL costs 0.337980 s
这波啊,这波是pypy完败呢,对第三方库而言,看来并不能影响太多
循环计算
以下是测试脚本
import time
def loopcal():
start_time = time.perf_counter()
sum = 0
for i in range(100000000):
sum =+ i
end_time = time.perf_counter()
print("loopCal costs %f s" % (end_time - start_time))
def main():
loopcal()
if __name__ == '__main__':
main()
将1亿做循环累加计算,并记录耗时
pypy环境:loopCal costs 0.071973 s
CPython环境:loopCal costs 2.760640 s
这波,pypy几乎瞬间就完成了,但CPython解释器还在挠头呢
pypy缺点
对于numpy、pandas、scipy这些用C语言编写的库而言,pypy环境下安装极为困难,而且并不能有效提升速度,但在Python内部库的处理上,pypy能很好的完胜Python,像简单的循环执行效率方面,有着质的提升。
但是作为一名非计科的研究僧而言,用的多的不是这pypy环境,我用Python的一方面主要是利用Conda来方便创建虚拟环境以及下载Conda库里的包而已,方便才是Python最强大的地方,但这些方面pypy都不具备,所以之后我不会继续使用pypy的,尽管他的解释速度飞快,但我为什么不用别的静态语言来处理这些事呢~
pypy就浅尝辄止到这吧