下面的代碼是線性方程求解器的一部分。它是爲Python 3編寫的。在運行該程序之前,它將檢查imp.get_magic()
的幻數與期望值之間的差異。Python 3.5.0提供了一個意想不到的幻數
我在運行Fedora 25的系統上安裝了Python 3.5.0。 問題是,在我的系統上,我得到了一個不同的魔數值。
所預期的那樣:b'\xf8\x0c\r\n'
相反,我得到:b'\x16\r\r\n'
下面是代碼
def _get_module():
del globals()['_get_module']
import imp
import base64
import marshal
magic = imp.get_magic()
if magic == b'\xf8\x0c\r\n': # Python 3.5
pycData = <certain value>
pycData = base64.decodebytes(pycData)
因爲我得到了一個神奇的數字不同的值,我不能運行這個程序。
此代碼是從書Coding the Matrix的資源。它可以在「矩陣」一節下找到,文件名爲solver.py
(直接下載文件)。
有沒有辦法讓這個滾動?
嗯,難道你不能讓條件變成真嗎?無論如何,這個代碼假設要做什麼? – user1685095
噢,男孩,所以腳本包含嵌入的字節碼,以鍵入Python版本的幻數,並加載該字節碼。什麼可能會出錯? –
@MartijnPieters它與操作系統有關嗎? – dpk