在其他版本的Python中调用函数

时间:2014-08-08 12:36:20

标签: python python-2.7 cx-oracle python-3.4

可以从其他.py文件中调用函数。但是我们可以强迫Python用另一个版本来做吗?

问题: 我的Python版本是3.4。

我需要连接到Oracle 10g数据库。不幸的是,没有可以连接Python 3.4和10g的cx_Oracle版本(有一个版本,但仅适用于Oracle 11g及更高版本)。因此我必须使用Python 2.7,因此我可以使用支持10g的cx_Oracle版本。在这种配置中,我在3.4上运行的代码需要进行各种调整,而且需要数千行。

解决方案:

  1. 我目前的所有代码仍将在3.4

  2. 上运行
  3. 当我需要使用其他.py文件中的函数连接到数据库时,它必须在2.7上运行

  4. 如何在3.4内运行Python 2.7?

1 个答案:

答案 0 :(得分:1)

一种选择是使用subprocess模块。

def callpython2(file_to_be_executed, params):
    cmd = file_to_be_executed + ' ' + ' '.join(params)
    cmd = %PYTHON2_EXE% + ' ' + cmd

    p = subprocess.Popen(cmd, env=cmdEnv, shell=True)
    p.communicate()

然后使用您的文件和参数调用此函数(如果有)。将调用文件的__main__函数,您可以将函数放在__main__

注意:请检查子流程docs,了解有关如何捕获/控制结果输出或错误的更多详细信息。