2017-01-19 126 views
0

,我發現了以下錯誤:Python 2.7版導入錯誤:沒有模塊名爲pysqlite2

from pysqlite2 import dbapi2 as sqlite ImportError: No module named pysqlite2

我試圖安裝它:

python -mpip install pysqlite2 

我得到這個錯誤:

Could not find a version that satisfies the requirement pysqlite2 (from versio ns:) No matching distribution found for pysqlite2

我看過這個: ImportError: No module named pysqlite2

但解決方案是改變我不允許做的代碼。 此代碼正在一個站上工作,我們只是希望它在另一個站中工作。

我該怎麼辦(我應該注意我正在使用Windows 7)?

回答

3

正確答案

的答案是,你的代碼是舊的,它需要更新。去做。分支或派生倉庫,盡一切努力獲得工作,現代的代碼。


你不能做正確的事™

如果您無法或不願爲人爲原因做出這樣的事情,你有幾個選擇,範圍從最小可怕最恐怖:

  • Create your ownpysqlite2 module,這是一個圍繞sqlite3的包裝。你可能只需要適應一些功能,你甚至可能不需要這樣做。它可能看起來像這樣:

    import sqlite3 
    
    connect = sqlite3.connect 
    

    我不確定代碼使用什麼功能。但是這個工作,如果你做對了。

  • 通過monkeypatching更改原始代碼。這是粗糙而且容易出錯的,很難得到正確的結果。

  • 更改原始代碼doing some AST hacks。這是困難和駭人聽聞的。你可以做到這一點。但你不應該。你真的真的不應該。

只是做正確的事情,但如果你不能,可能的,可能有很多的心血,做了錯誤的事情,使反正它的工作。只要確保留下大量的評論,就會向那些來到你身後的貧窮開發者大量道歉,並且必須維護這種膠帶和打包線。

你永遠不知道,他們可能是一個知道你住在哪裏的殺人精神病患者。 (我知道如果我必須維護這樣的代碼,我會得到一些殺人)

+0

當你說代碼需要更新時,你實際上意味着停止使用pysqlite2並開始使用sqlite3?但是我可以在哪裏閱讀有關更改以便用新軟件包測試我的代碼? – avi

+0

@avi。如果有的話,可能沒有那麼多的改變。 dbapi規範非常明確,afaik。我只是改變名稱並運行代碼,看看它是否爆炸。它不應該,但如果有的話,修復這些斑點。 –

相關問題