Ответ 1
Различные версии Python (по большей части) не являются бинарно-совместимыми, и поэтому любые скомпилированные расширения (например, pyodbc) будут работать только для определенной версии.
Обратите внимание, что пакеты pure-Python (те, которые полностью написаны на Python и не имеют зависимостей от не-Python) не нужно компилировать и, таким образом, могут быть написаны для поддержки нескольких версий Python.
Также обратите внимание, что технически возможно, чтобы скомпилированное расширение было написано так, что оно работает для Python 3.2, а также 3.3, 3.4 и будущего 3.x, но они должны ограничиться "stable ABI" , как указано PEP 384, и большинство расширения не делают этого. Насколько я знаю, pyodbc не ограничивается стабильным ABI и должен быть скомпилирован отдельно для каждой версии Python.
Тем не менее, можно также скомпилировать собственную версию pyodbc из исходного кода, если у вас есть необходимые инструменты и знания. (Но я предполагаю, что если вы задаете этот вопрос, вы этого не сделаете. Я тоже этого не делаю, иначе я бы добавил несколько советов в этот ответ.)
Как вы уже прокомментировали, pypyodbc может быть вашим лучшим выбором, так как это пакет pure-Python.
Установка pypyodbc может быть выполнена через командную строку:
C:\Python34\Scripts>pip install pypyodbc
Использование его в качестве замещающей замены pyobbc может быть выполнено с помощью:
import pypyodbc as pyodbc
[Текущая версия pyodbc
во время этого редактирования 3.0.10, и она поддерживает Python 3.4. Конечно, все еще полезно знать pypyodbc
в случае, если pyodbc
отстает снова, когда выпущены будущие версии Python.]