在python脚本

时间:2018-01-26 02:58:20

标签: python python-3.x environment-variables python-2.x

我有两个python脚本,第一个(script1)与python2和第二个一起使用 (script2)适用于python3。

它们是我自己没有编写的两个代码,我尝试使用python3运行第一个代码,或者使用python2运行第二个代码,它不会工作。

我需要的是从script2多次调用script1(所以在script2中,我需要调用script1并传递一些参数,如x,y)

所以肯定是因为script1应该在python2中运行而script2应该在python3中运行,我需要改变运行环境。

我试过了:

    os.system("source activate py3") #py3 is a virtualenv in which python3 is installed
    #running codes on python3
    os.system("source deactivate py3")
    script1.main(x, y)
然而,似乎它不起作用。如果我运行python3 script2.py一切都将基于python3运行,如果我运行python script2.py,一切都将基于python2运行。

所以这意味着编写os.system(“更改python版本环境的命令”)将不起作用。

还有其他解决办法吗?

感谢您的考虑。 在advnace中感谢

1 个答案:

答案 0 :(得分:1)

os.system("source activate py3") #py3 is a virtualenv in which python3 is installed

您已运行shell命令:source activate py3。那个shell命令只能在调用os.system中有效。它没有做太多的工作,一旦结束,你的脚本就会在解释器内部继续进行,而解释器已经是你的python2

所以:

#running codes on python3
os.system("source deactivate py3")

代码在<{1}}上运行 NOT ,因为您对python3所做的任何操作只能在该调用中产生效果。

一个选项

os.system

您的os.system('mypy3.sh') 将如下所示

mypy3.sh