我使用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代碼中再次讀取數據。 –