Ответ 1
Обновление: Как Zooba упоминается ниже, free x86 и AMD64 (x86-64) Компиляторы VC90 для Python-2.7 теперь доступны из Microsoft.
Обновление: Патч vcvarsall.bat
для использования компиляторов x64 из SDK v7.0 напрямую с pip
в любой оболочке вместо использования оболочки SDK и установки переменных окружения DISTUTILS_USE_SDK
и MSSdk
, как в приведенных ниже направлениях. См. Исправить vcvarsall.bat для установки расширений x64 для Python-2.7 с помощью v90 вместо sdk7.
tl; dr: Используйте компиляторы Windows SDK v7.0, откройте оболочку SDK и вызовите
C:\> setenv /release /x64
C:\> set DISTUTILS_USE_SDK=1
C:\> MSSdk=1
для создания расширений Python 2.7.x с использованием distutils, pip
или easy_install
. См. Расширения пакета Python x64 с помощью pip, MSVC 2008 Express и SDK 7.
Примечание. Вы можете установить Numpy, оптимизированный с использованием Intel MKL от Christoph Gohlke. Для virtualenv попробуйте преобразовать установщик двоичных дистрибутивных окон в файл wheel, который можно установить с помощью pip. Построение NumPy из источника не тривиально. Это стало возможным благодаря недавнему внедрению и доступности OpenBLAS, вилке GotoBLAS. Существуют оптимизированные двоичные файлы, доступные для Windows x86 и x86-64, а также источник, который относительно проще компилировать, чем GotoBLAS или ATLAS.
Примечание. Раньше я не рекомендовал компилировать NumPy из исходного кода, потому что вам нужно было оптимизировать BLAS для вашей платформы, которая была очень трудоемкой, а эталонная реализация BLAS (FORTRAN) или CBLAS (C/С++) была относительно малоэффективные. Также NumPy зависит от LAPACK, который также зависит от BLAS - дополнительного препятствия для построения NumPy. Однако двоичные файлы OpenBLAS уже скомпилированы с помощью LAPACK, поэтому это препятствие уже удалено. См. стальные инструменты MinGW-w64 Carl Kleffner для создания NumPy с OpenBLAS в Windows - он разрешил некоторые несовместимости ABI и проблемы, связанные с правильным Microsoft Visual C Common Runtime library (msvcr90.dll
для Python-2.7).
Итак, к основному вопросу об установке расширений Python в Windows 7 x64.
Рекомендуемым способом компиляции расширений является использование того же компилятора, который использовался для компиляции общей библиотеки Python [1-3]. официальный Python 2.7.x для Windows был скомпилирован с использованием Microsoft Visual С++ Компиляторы версии 9.0 [4] (ака MSVC90 или просто VC90) от Microsoft Visual Studio 2008 Professional, которые вы можете получить бесплатно Microsoft DreamSpark. По-видимому, компиляторы x64 по умолчанию не установлены, поэтому убедитесь, что они установлены вместе с компиляторами x86. Примечание. MS Visual Studio 2008 больше не может быть доступна, но MS Visual Studio 2010 позволит вам использовать инструментальную цепочку MSVC90, если она установлена, которую можно установить из Windows SDK7.
Вы можете узнать, в какой версии был создан ваш Python, просмотрев заголовок, когда вы выполняете интерпретатор python из командной строки. Например: Python 2.7.3 (default, Apr 10 2012, 23:24:47) [MSC v.1500 64 bit (AMD64)] on win32
означает, что он был построен с VS 2008 С++. Вы можете сами построить Python из источника, но это также трудная задача. В общем случае не рекомендуется смешивать время выполнения компилятора, хотя на практике вы можете обнаружить, что они все еще работают.
Если у вас настроено ваше сердце, используя GNU GCC, вам нужно будет использовать mingw-w64, потому что MinGW предназначен только для собственных приложений x86, а не для AMD64/x86-64, Вам нужно
- создать конфигурационный файл distutils для указания компилятора mingw,
- удалить ошибку -mno-cygwin от distutils.cygwinccompiler.Mingw32ccompiler и
- экспортировать файл определений библиотеки с помощью
pexports.exe
из msys илиgendef.exe
из msys2 и создать статическую библиотекуlibpython27.a
с помощьюdlltool.exe
( msys/msys2) (но новейшие выпуски Официального Python для Windows уже имеют этот файл в папкеPython27\lib
, спасибо!).
Однако в конце вам все равно придется ссылаться на среду выполнения, с которой был построен python, msvcr90.dll
, поэтому вам понадобится Visual С++ 2008 redistributable. Примечание: Windows GCC из mingw-w64 использует msvcrt.dll
, который не совпадает с msvcr90.dll
или более поздней версией.
Если вы хотите сделать это бесплатно, вы можете использовать Microsoft Visual С++ 2008 Express SP1, но вам нужно будет добавить Windows SDK 7 для .NET Framework 3.5 SP1, поскольку в экспресс-версии нет есть компиляторы x64. Процедура установки расширений x64 С++ с VS2008 Express и SDK 7 очень похожа на процедуру для MSYS.
Для многих пакетов Python, использующих distutils или setuptools, они могут скомпилировать расширения с помощью Windows SDK 7, следуя указаниям, которые размещаются в разных местах через справочную документацию и вики:
- В меню "Пуск" выберите Все программы, затем Microsoft Windows SDK v7.0 и запустите CMD Shell, чтобы откройте окно командной строки, оптимизированное для Windows SDK.
-
Шаг №1 является эквивалентом ввода следующего в поле Выполнить из меню "Пуск" или из командной строки (aka
C:\Windows\System32\cmd.exe
):%COMSPEC% /E:ON /V:ON /K "%PROGRAMFILES%\Microsoft SDKs\Windows\v7.0\Bin\SetEnv.cmd"
ПРИМЕЧАНИЕ. Флаги
/E:ON
, который включает расширения команд и/V:ON
, которые обеспечивают замедленное расширение переменных, необходимы для функцииSetEnv.cmd
, или вы получите сообщение о том, что компиляторы x64 не являются установлен, & c. -
Затем введите
setenv /Release /x64
, который будет устанавливать переменные среды SDK специально для выпуска Windows 7 x64 (по умолчанию для debug или x86). - Введите
set DISTUTILS_USE_SDK=1
нажмите return, а затем введитеset MSSdk=1
и вернитесь, чтобы сообщитьdistutils.msvccompiler
, что вы используете SDK, и что SDK определит все переменные среды. - Теперь используйте свой способ установки:
-
pip install pyyaml ntlk
, который рекомендуется, см. ntlk, но вы должны иметь setuptools и pip. -
python setup.py install
для каждого загруженного, извлеченного tarball -
easy_install pyyaml ntlk
, который является старым способом и единственным способом установки яиц.
-
[1] Создание расширений C и С++ в Windows
[2] distutils.msvccompiler - Microsoft Compiler
[3] Руководство для Python Dev: Начало работы: Windows
[4] Какая версия визуальной студии - это питон, скомпилированный с