我使用Jupyter Notebook来编写一些Python 3.4
代码,但我必须加载已写入Python 2.7
的类。从python 3.4加载python 2.7类jupyter笔记本
我想加载的课程不是由我编写的,所以我不能真正(或想要)将所有代码升级到Python 3.4
。在其他代码中,该类的使用非常有限,仅用于返回一些与Python 3.4
兼容的数据。
我有2个问题:
- 有什么办法,我可以在
Python 2.7
运行单个单元格,然后用整个笔记本脚本的其余部分是电池的输出? - 如果没有,你有什么建议吗?
所需的使用:
+++++ 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,但没有真正的溶液,除了在评论一对夫妇黑客提供。
注意:这个问题是完全无关的Using both Python 2.x and Python 3.x in IPython Notebook,这是有关如何使用这两种语言,而不是有关如何引用一个来自其他。
你能在你的'的Python 2.7'类运行'2to3'? – davejagoda
@davejagoda - 它不是非常直观,有多个文件,你也必须使用cython编译才能使用它,我认为链接到一些2.7库。 – Matteo
如果你安装了两个版本的Python,你可以在单元的顶部放置'%% python2'来在Python 2中运行它。但是,这些代码将在一个单独的进程中运行,所以你需要编写(例如使用[pickle](https://docs.python.org/3/library/pickle.html)),然后在Python 3代码中再次读取数据。 –