2015-11-27 99 views
1

我使用多个应用程序在使用不同版本的Python:如何在新的Python解释器中运行Python脚本?

核弹 - 2.7

3Dequalizer - 2.6

的Linux - 2.6.6

我正在试图让各种问题他们都彼此沟通,所以我想知道是否可以在脚本中更改Python解释器。

E.g.开始在2.6,然后从脚本在2.6

EDIT运行2.7 Python脚本:

nuke_install = "/path/to/nuke" 

cmd = nukeLauncher + " -t" 
os.system(cmd) 

-t标志允许核武器没有图形用户界面来运行。在Python解释器中运行时,此代码的工作,但是当我在3dequalizer通过Python脚本运行它给我的:

ImportError: No module named site 

要添加混乱的另一个层面,我可以在里面3dequalizer汇入网站。 3dequalizer的sys.path包含与从解释器直接运行时相同的路径,并为3de附带的python lib添加了一些内容。

另外PYTHONPATH在3dequalizer中是空的。如果sys.path指向正确的路径,这很重要吗?

+0

您应该尝试编写与所有版本兼容的代码。 –

+1

你确定有什么特定的Python版本导致你的通信问题,或者你认为不同的版本是你的问题? – SiHa

+0

我在这里假设。我一直在做很多测试,我似乎无法弄清楚究竟是什么问题。但是当我从每个解释器直接运行时,它工作正常。我主要希望能够使用2.7进行子进程。但是,当使用os.system时,我得到ImportError的说无模块命名站点。从一些搜索周围的点到python路径没有被正确设置。这让我怀疑这是否与不同版本的冲突有关。 – Elliot

回答

0

我不确定这真的是要走的路; (只要它是在你的可执行文件路径)的名称

os.system("python2.7 myscript.py") 

将执行程序 python2.7:但如果你真的想这样做,你可以使用os.system命令类似的财产以后的脚本作为它的参数(在返回当前语句之前)在您的初始脚本中。

但说实话,我认为你应该以其他方式做。问候。

+0

感谢您的回复,我意识到这很杂乱。目前只是更多地使用它进行调试。这似乎不起作用,所以我想回到绘图板! – Elliot

相关问题