簡體   English   中英

為給定版本的 Python 構建擴展模塊需要什么版本的 Visual Studio 和/或 MinGW?

[英]What version of Visual Studio and/or MinGW do I need to build extension modules for a given version of Python?

換個說法,從 Python 的python.org構建的每個官方 Python 版本是什么版本的 Visual C++,以及哪些版本的 MinGW 與這些版本的 Visual C++ 兼容?

這些信息在某些網站上容易獲得嗎?

每個 Python 版本的源代碼分發中的文件PCbuild\\readme.txt包括用於制作二進制文件的 Visual Studio 版本。

Python 2.6、2.7、3.1 和 3.2 都是用 VS 2008 編譯的。Python 3.3 和 3.4 是用 VS 2010 編譯的。

我不確定 MinGW 的兼容性。

如果您正在尋找命令行編譯器,Microsoft 已為 Windows 7 發布了兩個不同的 SDK,其中包括命令行編譯器。 第一個 SDK(用於 .NET 3.5)包括 VS 2008 編譯器。 第二個 SDK(用於 .NET 4.0)包括 VS 2010 編譯器。

更新:每個 Python 版本的源代碼分發中的文件PCbuild\\readme.txt包括用於制作二進制文件的 Visual Studio 版本。

想必,您正在談論構建 Python 擴展以與 Python 實例所做的相同 C 運行時庫動態鏈接的要求。 首先應該注意的是,這取決於實例的構建方式,即,如果您自己從源代碼構建 Python,則決定所使用的運行時庫的是您用於構建的編譯器版本,而不是 Python 的版本.

如果您想知道官方二進制版本的運行時庫版本,您可以使用您最喜歡的 DLL 依賴項工具(例如Dependency Walker)自己解決這個問題,或者查看安裝程序中包含哪個運行時庫可再發行組件。

根據我非常簡短的研究,我相信您可以將最新版本的 MinGW 與這些運行時庫中的任何一個一起使用。 默認情況下,它使用 msvcrt.dll,即 Windows 內置的 C 運行時,但它似乎支持使用 VC++ 運行時。

如果在 2020 年仍有人對此感興趣:我發現此(更新)頁面列出了用於每個 CPython 版本的 Visual C++ 編譯器版本(以及包含它們的 Visual Studio 版本):

https://wiki.python.org/moin/WindowsCompilers

暫無
暫無

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

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