首页 文章

从python 3.4 jupyter notebook加载python 2.7类

提问于
浏览
0

我正在使用Jupyter Notebook编写一些 Python 3.4 代码,但我必须加载一个用 Python 2.7 编写的类 .

我真的(或想要)将所有代码升级到 Python 3.4 . 在其余代码中,该类的使用非常有限,仅用于返回与 Python 3.4 兼容的一些数据 .

我有两个问题:

  • 有什么方法可以在 Python 2.7 中运行单个单元格,然后在整个笔记本脚本中使用该单元格的输出?

  • 如果没有,你有什么建议吗?

Desired usage:

+++++ Python 2.7 cell +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
In[1]: #load the class
       my_class = MYCLASS()
       #use the class to get 3.4 compatible data
       data_list = my_class.produce_data() 

+++++ Python 3.4 cell ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
In[2]: #use the data list in a 3.4 way
       for x in data_list:
           print(x)

我发现了一个类似的问题,Calling Python 2 script from Python 3,但除了评论中的几个黑客之外,没有提供真正的解决方案 .

NOTE :这个问题与Using both Python 2.x and Python 3.x in IPython Notebook完全无关,它是关于如何使用这两种语言而不是如何引用另一种语言 .

1 回答

  • 1

    重新作为答案:

    如果您安装了两个版本的Python,则可以将 %%python2 放在单元格的顶部以在Python 2中运行它 . 但是,该代码将在单独的进程中运行,因此您需要将数据写出来(例如,使用pickle)然后在Python 3代码中再次读取它 .

    %%python2 魔法的文档在这里:

    http://ipython.readthedocs.org/en/stable/interactive/magics.html#cellmagic-python2

相关问题