2017-12-03 183 views
1

有沒有辦法在python 3文件中運行python 2代碼? 我必須使用在python 2中編碼並位於python 2文件中的函數。但我需要導入它並使用python 3文件中的函數。是可以運行該功能就像一個Python 2模式?在python 3文件中運行python 2代碼

+0

這取決於你的功能如何看起來像 – yash

+0

有沒有辦法像python 2一樣只運行一行? –

+0

Nope afaik @chicken_wings – yash

回答

0

不可能用Python 3運行Python 2代碼,至少不是一般的。儘管手動轉換非常簡單。

如果你有很長的文件,你也應該考慮使用2to3這將適用於需要修復,使你的代碼運行在Python 3

如果你已經安裝了Python 3,你只需要運行下面的你終奌站。

2to3 your_file_name.py 

請注意,有時2to3將無法​​從Python2轉換到Python3。如果它注意到它,它會給你警告並指出你需要手動修復的行。

雖然也可能發生2to3甚至沒有注意到輸出代碼不起作用。這是發生在例子中,你給我的意見:

input('Type text here: ').encode('utf-8').encode('hex') 

這將Python3對於您可以探索here原因無法正常工作。

原因2to3沒有意識到這是因爲這實際上是語法上完全有效的代碼。實際上,你可以預測inputstr.encode的方式,使這個工作代碼。

總之,有時您必須自己閱讀錯誤並修復代碼。

+0

我嘗試過使用2to3,但它只改變了一行代碼,並沒有改變代碼的其餘部分,我不能在這裏發佈代碼,因爲它是對於作業,它將被檢查剽竊 –

+0

有時2to3不能自動修復你的代碼。運行後你有沒有收到警告?沒有代碼或至少2to3的警告,我們無能爲力。 –

+0

另外,如果沒有東西需要轉換,它不會。對? @Olivier – yash