运行不同的python版本

时间:2014-06-22 09:32:29

标签: python-2.7 python-2.5

我碰巧在执行不同版本的python时遇到了问题。我安装了python 2.7和2.5。如果我想使用2.5版本运行脚本,我只需要包含#!python2.5即可。 现在我的问题是我的整个应用程序使用的是2.7。在2.7版本中使用PIL库不会生成正确的结果,因此我使用python 2.5版来使用字体生成图像。

我的主文件包含:

import func
if __name__=='__main__':
    i=func.gen("Hey there")
    i.save("img.png")

这会调用脚本func.py

中编写的函数
#!python2.5
import Image,ImageDraw,ImageFont
def gen(txt):
    im=Image.new('RGBA',(200,200))
    font=ImageFont.truetype("abc.ttf",100)
    draw  =  ImageDraw.Draw (im)
    draw.text ( ( 0 , 0), txt, font=font, fill="#FFFFFF" )
    return im

当我单独执行时,此脚本使用python2.5版本运行。 但是当我在主文件中调用它时,它运行2.7版本。任何人都可以提供解决方案吗?

2 个答案:

答案 0 :(得分:1)

使用另一个python版本执行应用程序的一部分的唯一方法是在外部调用它。

这可以通过使用subprocess或类似方法来实现。只要您在使用python2.7启动第一个脚本时调用第二个脚本中的方法,它们就会被python2.7执行。

第二种解决方案是实现一个"图像渲染守护进程"它与python2.5一起运行,并由python2.7应用程序通过套接字/ HTTP调用。

答案 1 :(得分:1)

我做到了。我在subprocess中使用了Popen。

p=Popen(['cmd', '/C', 'py -2.5 func.py'], stdout = PIPE)
pp= p.communicate()[0]