Le diverse versioni di Python sono (per la maggior parte) non compatibili con i binari, e quindi qualsiasi estensione compilata (come pyodbc) funzionerà solo per una versione specifica.
Si noti che i pacchetti di puro Python (quelli completamente scritti in Python e che non hanno dipendenze non Python) non hanno bisogno di essere compilati e quindi possono essere scritti per supportare più versioni di Python.
Si noti inoltre che è tecnicamente possibile per un'estensione compilato per essere scritto in modo tale che funziona per Python 3.2 e 3.3, 3.4, e il futuro del 3.x a venire, ma devono limitarsi a il "stable ABI" come specificato da PEP 384, e la maggior parte delle estensioni non lo fanno. Per quanto ne so, pyodbc non è limitato all'ABI stabile e deve essere compilato separatamente per ogni versione di Python.
Detto questo, è anche possibile compilare la propria versione di pyodbc dal sorgente, purché si disponga degli strumenti e delle competenze necessarie. (Ma suppongo che tu stia facendo questa domanda, non lo fai. Neanche io, altrimenti includerei alcuni suggerimenti in questa risposta.)
Come hai già commentato, pypyodbc potrebbe essere la soluzione migliore, dato che si tratta di un pacchetto Python puro.
Installazione pypyodbc può essere fatto tramite la riga di comando:
C:\Python34\Scripts>pip install pypyodbc
Usandolo come rimpiazzo di pyodbc può essere fatto utilizzando:
import pypyodbc as pyodbc
[La versione corrente del pyodbc
al il tempo di questa modifica è 3.0.10 e supporta Python 3.4. Naturalmente, è ancora utile essere a conoscenza di pypyodbc
in caso pyodbc
rimane indietro di nuovo quando il futuro versioni di Python vengono rilasciati.]
fonte
2014-04-25 17:42:41
Un interruttore a pypyodbc può essere in ordine, se non c'è niente di semplice da fare. – steegness
Per quello che vale, 'pyodbc' è stato aggiornato molto recentemente (fine aprile 2015) e ora supporta Python 3.4. –