簡體   English   中英

是否可以在Windows *上*不安裝Visual Studio 2008的情況下為Python 2.7至3.1開發C擴展?

[英]Can I develop C extensions for Python 2.7 through 3.1 on Windows *without* installing Visual Studio 2008?

我知道Windows上的Python擴展通常必須使用與編譯Python本身相同的Visual Studio版本構建,並且我進一步知道Python 2.7至3.1是使用Visual Studio 2008構建的。我已經安裝了VS 2013,並且,正如我發現的無數次一樣,快速弄亂Windows開發環境的一種方法是按照從舊到最新的順序安裝Visual Studio。 除此之外,在全新的Windows 8.1機器上安裝VS2008似乎很愚蠢。 Python擴展是我唯一需要2008年的東西。 如果我可以避免安裝它,我真的不願意安裝。

我是否可以避免安裝VS 2008,而仍然可以通過安裝特定的Platform SDK來針對正式的Python發行版進行構建? 如果沒有,是否有可能與MinGW一起使用的Python替代版本,或者不需要我安裝VS 2008的某些版本?

我可以為您的問題提出一些可能的解決方案。 從可能最簡單到可能最困難:

  1. 只需使用Visual Studio 2013編譯擴展模塊即可。 為此,擴展模塊不得訪問Python解釋器創建的任何C運行時對象,也不得將其創建的任何C運行時對象傳遞給解釋器。 特別是您不能使用Python提供的任何FILE *或文件描述符對象。 您仍然可以讀取和寫入模塊中的文件,但不能讀取和讀取Python已打開的文件。

  2. 卸載Visual Studio 2013,安裝Visual Studio 2008,然后重新安裝Visual Studio2013。聽起來很傻,這比以下兩種解決方案都更快,更麻煩。 這將使您可以正常地構建擴展模塊,而不必擔心使用什么C運行時對象。

  3. 使用mingw32並使用各種技巧使其工作。 此頁面說明了一個人如何使其工作: https : //lists.launchpad.net/kicad-developers/msg09473.html

  4. 從另一台計算機上安裝的VS 2008復制相應的msvcrt * .lib文件。 手動編輯鏈接器選項以使用此庫,而不是VS 2013的同名msvcrt * .lib。 如果這不起作用,則也復制包含文件和其他庫,然后修改編譯器和鏈接器選項以使用它們。 如果仍然無法解決問題,請復制VS 2008命令行編譯器及其所有相關DLL,正確設置PATH,然后修改生成過程以改用該編譯器。

暫無
暫無

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

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