pyodbc and python 3.4 on Windows

后端 未结 3 742
庸人自扰
庸人自扰 2021-02-04 03:40

pyodbc is a very nice thing, but the Windows installers only work with their very specific python version. With the release of Python 3.4, the only available installers just st

3条回答
  •  执念已碎
    2021-02-04 04:08

    The different versions of Python are (for the most part) not binary-compatible, and thus any compiled extensions (such as pyodbc) will only work for a specific version.

    Note that pure-Python packages (the ones that are completely written in Python, and have no non-Python dependencies) do not need to be compiled, and thus can be written to support multiple Python versions.

    Also note that it is technically possible for a compiled extension to be written such that it works for Python 3.2 as well as 3.3, 3.4, and the future 3.x's to come, but they have to limit themselves to the "stable ABI" as specified by PEP 384, and most extensions do not do this. As far as I know, pyodbc is not limited to the stable ABI and must be compiled separately for each Python version.

    That said, it is also possible to compile your own version of pyodbc from source, as long as you have the required tools and expertise. (But I'm guessing if you're asking this question, you don't. I don't either, otherwise I'd include some tips in this answer.)

    As you have already commented, pypyodbc may be your best bet, as it is a pure-Python package.

    Installing pypyodbc can be done via the commandline:

    C:\Python34\Scripts>pip install pypyodbc
    

    Using it as drop-in replacement of pyodbc can be done using:

    import pypyodbc as pyodbc
    

    [The current version of pyodbc at the time of this edit is 3.0.10, and it does support Python 3.4. Of course, it's still useful to be aware of pypyodbc in case pyodbc falls behind again when future versions of Python are released.]

提交回复
热议问题