簡體   English   中英

Windows上的pyodbc和python 3.4

[英]pyodbc and python 3.4 on Windows

pyodbc是一個非常好的東西,但Windows安裝程序只能使用他們非常具體的python版本。 隨着Python 3.4的發布,唯一可用的安裝程序只有在注冊表中看不到3.3時才會停止(盡管3.4肯定存在)。

將.pyd和.egg-info文件從3.3安裝復制到3.4 site-packages目錄似乎沒有辦法解決問題。 導入pyodbc時,拋出ImportError: DLL load failed: %1 is not a valid Win32 application.ImportError: DLL load failed: %1 is not a valid Win32 application.

是否有一個秘密的醬可以添加,以使3.3文件正常工作? 或者我們只需要等待3.4安裝程序版本?

Python的不同版本(大多數情況下)不是二進制兼容的,因此任何編譯的擴展(例如pyodbc)僅適用於特定版本。

請注意,純Python包(完全用Python編寫,沒有非Python依賴項)不需要編譯,因此可以編寫以支持多個Python版本。

另請注意,編譯擴展在技術上可以編寫,使其適用於Python 3.2以及3.3,3.4和未來的3.x,但是他們必須將自己限制為“穩定的ABI” 。由PEP 384指定,並且大多數擴展不執行此操作。 據我所知,pyodbc不僅限於穩定的ABI,必須為每個Python版本單獨編譯。

也就是說,只要您擁有所需的工具和專業知識,也可以從源代碼編譯您自己的pyodbc版本。 (但我猜你是不是在問這個問題,你沒有。我也沒有。否則我會在這個答案中加入一些提示。)

正如您已經評論過的那樣, pypyodbc可能是您最好的選擇,因為它是一個純Python包。

安裝pypyodbc可以通過命令行完成:

C:\Python34\Scripts>pip install pypyodbc

使用它作為pyodbc的替代品可以使用以下方法完成:

import pypyodbc as pyodbc

[編輯時當前版本的pyodbc3.0.10 ,它支持Python 3.4。 當然,如果在未來版本的Python發布時pyodbc再次落后,那么了解pypyodbc仍然很有用。

你試過從這里下載嗎? 它有3.4的非官方版本。 我自己做了一個快速測試,看起來它對我來說很好。

我通過安裝pyodbc 3.0.10修復了這個問題。 最新版本的pyodbc在使用Python 3.4 Windows上無效

然而,pyodbc 3.0.10確實對我有用

在命令提示符下安裝命令: pip install pyodbc 3.0.10

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM