【问题标题】:Is it possible to call a Python 3.2 function in Python 3.4 program?是否可以在 Python 3.4 程序中调用 Python 3.2 函数?
【发布时间】:2015-05-24 19:43:57
【问题描述】:

我想使用仅支持 python 3.2 的商业包。但是很多支持 python 3.4 的包在 3.2 中无法轻松安装。

那么有没有可能让一个python 3.4的程序调用一个python 3.2的函数呢?


我的遍历方法是写一个python 3.2程序,使用pickle保存函数输出:

# python 3.2, function.py
with open("temp.pickle",'wb") as pickle_output:
    pickle.dump(output,pickle_output)

并在 python 3.4 程序中调用它:

# python 3.4 main.py
subprocess.call("c:\python32\python function.py")

然后读取泡菜:

# python 3.4 main.py
with open("temp.pickle",'wb") as pickle_input:
    input = pickle.load(pickle_input)

并在python 3.4中使用输入对象


它起作用了,但速度很慢,而且看起来很傻。有没有其他方法可以做到这一点? import module using python 3.2 之类的东西?

【问题讨论】:

  • 您是否尝试从 3.4 导入包?
  • @kirbyfan64sos 我做了,得到:ImportError: Module use of python32.dll conflicts with this version of Python.
  • 使用来自 Py3.4 的子进程运行 Py3.2 命令并直接使用输出?
  • 这可能行不通,但值得一试:您能否将模块使用的python32.dll替换为python34.dll,即将python34.dll复制到python32.dll。跨度>
  • @kirbyfan64sos 我试过了,同样的错误。╮(╯▽╰)╭

标签: python pickle python-3.4 python-3.2


【解决方案1】:

另一个选项是使用shelve module。它为用于存储值的文件提供了更高级别的dict 样式接口。另一种可能性是使用marshall module,但这仅适用于某些类型,通常不打算使用。在这种情况下可能会更快。

第三种选择是使用multiprocessing module 在进程之间进行实时通信并处理启动和停止它们。

【讨论】:

    猜你喜欢
    • 2023-02-08
    • 1970-01-01
    • 2020-02-18
    • 2010-10-28
    • 2017-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多