Запуск Cython в Windows x64 – фатальная ошибка C1083: невозможно открыть файл include: basetsd.h: нет такого файла или каталога

Я пытаюсь установить Cython для Python 2.7 на мою систему Window 7. В частности, я предпочитаю все в 64 бит. (Если вам интересно, мне нужен Cython, потому что Cython является одним из компонентов, которые мне нужны для другого пакета для некоторого специализированного численного анализа. И x64 потенциально является преимуществом для хранения больших наборов данных.)

Поэтому я загрузил x64 Python 2.7 с официального сайта. Получил Китонов от Кристофа Гольке . Конечно, версия amd64 для Python 2.7. Прежде чем я установил, я добавил Python 2.7 в реестр с файлом .reg найденным в ответе Джо DF здесь . Впоследствии я установил компилятор Visual C ++ отсюда (я не думаю, что он работает) и здесь (но это нужно). На данный момент у меня есть в каталоге C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin все vcvars32.bat , vcvars64.bat , vcvars86_amd64.bat , vcvarsx86_ia64.bat . Я запустил vcvars64.bat и не было сообщения об ошибке.

Впоследствии я последовал этой странице, чтобы создать тестовый файл «hello world».

Затем я получил эту ошибку.

 ...\Tests>python setup.py build_ext --inplace running build_ext building 'hello' extension error: Unable to find vcvarsall.bat 

Поэтому я подумал про себя: ну, Cython не может найти этот файл, потому что его не существует. (Я искал весь свой vcvars64.bat диск для этого.) Поэтому я скопировал vcvars64.bat из ...\VC\bin в \VC и изменил имя на vcvarsall.bat . Теперь ошибка vcvarsall исчезла. И … естественно, возникает новая ошибка.

 ...\Tests>python setup.py build_ext --inplace running build_ext building 'hello' extension C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\amd64\cl.exe /c /nolog o /Ox /MD /W3 /GS- /DNDEBUG -IC:\Python27\include -IC:\Python27\PC /Tchello.c /F obuild\temp.win-amd64-2.7\Release\hello.obj hello.c C:\Python27\include\pyconfig.h(227) : fatal error C1083: Cannot open include fil e: 'basetsd.h': No such file or directory error: command '"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\amd64 \cl.exe"' failed with exit status 2 

Теперь я понятия не имею, как действовать. Что мне делать? Ваша помощь очень ценится.

(Для ясности я попытался установить компилятор в Mingw32, но есть и другие ошибки. Я сосредоточен на том, чтобы VC работать сейчас).


EDIT: Я попытался использовать среду сборки SDK CMD в соответствии с инструкциями на этой странице . Я получил ту же ошибку.

  • запуск Python IDLE из командной строки для редактирования скриптов
  • Как проверить, является ли ОС Vista в Python?
  • Почему ответ Селена не имеет сеанса?
  • Как создать скрипт python, который может выйти из системы, завершить работу и перезагрузить компьютер?
  • Использование sys.stdin в select.select в Windows
  • Открытие имен файлов с двоеточием (":") в Windows 7
  • os.path.islink на windows с python
  • py2exe для генерации dll?
  • 4 Solutions collect form web for “Запуск Cython в Windows x64 – фатальная ошибка C1083: невозможно открыть файл include: basetsd.h: нет такого файла или каталога”

    Я столкнулся с этой проблемой при попытке установить pandas в режиме «разработки». Я сейчас бегаю. Моя среда:

    • Windows XP Pro x64 SP2
    • WinPython 64bit 2.7.5.3 (Python 2.7.5.amd64) <-- «зарегистрирован» как системный дистрибутив python с использованием приложения панели управления WinPython

    Проблемы, возникающие при запуске python setup.py develop :

    • Не удалось найти vcvarsall.bat
    • Неустранимая ошибка C1083: Не удается открыть файл include: basetsd.h: Нет такого файла или каталога … Код выхода 2

    Решение:

    1. Загрузите и установите Microsoft Visual C ++ 2008 Express.
    2. Загрузите и установите Microsoft Windows SDK для Windows 7 и .NET Framework 3.5 с пакетом обновления 1 (SP1). Вам понадобится только:
      • Инструменты разработчика> Заголовки и библиотеки Windows <-- это дает вам basetsd.h
      • Инструменты разработчика> Компиляторы Visual C ++ <-- это дает вам 64-битные компиляторы
    3. Скопируйте C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\vcvars64.bat в C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\amd64\vcvarsamd64.bat . Обратите внимание на изменение имени файла.
    4. Добавьте C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin в PATH . Это может не потребоваться (я сделал это перед повторной установкой SDK w / Headers & Libs, поэтому необходимость неизвестна).

    На этом этапе запуск python setup.py develop завершился успешно, а python -c "import pandas; print pandas.__version__" привел к ожидаемому тегу git.

    [EDIT] Дальнейшее чтение:

    • Ошибка: Не удалось найти vcvarsall.bat
      • ответ, если вы просто хотите установить бинарные файлы
      • ответ, если вы хотите скомпилировать на машине x64
      • ответ о изменении местоположения файла / имени
    • distutils issue 7511

    В случае, если кто-то в настоящий момент (2017) сталкивается с такой же ошибкой с инструментами Visual C ++ 2015, снова запустите установку, а также выберите Windows 8.1 / 10 SDK в зависимости от вашей ОС. Это исправит ошибку basestd.h .

    Если он все еще не работает, попробуйте запустить инструменты сборки из: C: \ Program Files (x86) \ Microsoft Visual C ++ Build Tools.

    Другой альтернативой было бы просто установить anaconda 2 или 3 (64 бит, если вы также не хотите ошибок памяти). Он содержит все важные готовые пакеты: sklearn, matplotlib, scipy, numpy, pandas и даже веб-разработки, такие как фляга.

    Для предложения вы можете попробовать его для сборки cython 64 бит с setup.py

    Я использую Anaconda для дистрибуции python, Microsoft Windopws SDK 7 и MSVC 12.0.

    Во-первых, я создаю библиотеку для моей функции cuda, во-вторых, я запускаю python setup.py build_ext -i для создания временной папки (вы получите ошибку), затем компилируйте Makefile ниже,

    В основном, я получаю это от setup.py, когда он компилирует 32-битное приложение, а затем меняет его для компиляции 64-битного.

    Makefile

     CL_EXE = "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\amd64\cl.exe" LINK_EXE = "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\amd64\link.exe" CL_FLAGS = /c /nologo /Ox /MD /W3 /GS- /DNDEBUG /O2 /fp:fast CL_INC = -I. -I"C:\Program Files\Microsoft SDKs\Windows\v7.1\Include" \ -I"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include" -IC:\Users\name\Anaconda2\envs\py27\Lib\site-packages\numpy\core\include -IC:\Users\name\Anaconda2\envs\py27\include -IC:\Users\name\Anaconda2\envs\py27\PC LINK_FLAGS = /DLL /nologo /INCREMENTAL:NO /MACHINE:X64 LINK_LIBPATH = "/LIBPATH:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\lib\x64" \ /LIBPATH:C:\Users\name\Anaconda2\envs\py27\libs \ /LIBPATH:C:\Users\name\Anaconda2\envs\py27\PCbuild\amd64 \ /LIBPATH:C:\Users\name\Anaconda2\envs\py27\PC\VS9.0\amd64 \ "/LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\lib\amd64" \ "/LIBPATH:C:\Program Files\Microsoft SDKs\Windows\v7.1\Lib\x64" LINK_LIB = cuda_multiply4D.lib cudart.lib MSVCRT.lib kernel32.lib LINK_EXPORT = /EXPORT:initmy_cuda LINK_OBJ = build\temp.win-amd64-2.7\Release\my_cuda.obj LINK_OUT = "/OUT:E:\my_cuda.pyd" LINK_OTHER_CONF = /IMPLIB:build\temp.win-amd64-2.7\Release\my_cuda.lib /MANIFESTFILE:build\temp.win-amd64-2.7\Release\my_cuda.pyd.manifest all: $(CL_EXE) $(CL_FLAGS) $(CL_INC) /Tcmy_cuda.c /Fobuild\temp.win-amd64-2.7\Release\my_cuda.obj $(LINK_EXE) $(LINK_FLAGS) $(LINK_LIBPATH) $(LINK_LIB) $(LINK_EXPORT) $(LINK_OBJ) $(LINK_OUT) $(LINK_OTHER_CONF) 

    Заметка:

    • MSVCRT.lib kernel32.lib являются необязательными,
    • / ЭКСПОРТ: initmy_cuda является обязательным. Его формат init% yourfilename_WO_Ext%
    • «/OUT:E:\my_cuda.pyd» для определения вашего местоположения вывода, его имени файла и его расширения.

    Для тех, кто в Windows 10, загрузите SDK здесь, чтобы исправить файл заголовка basestd.h .

    Я загрузил .exe, установил и отлично работал. SDK был ~ 2,3 ГБ.

    Примечание. Для таких, как я, с 64-битными системами, которые получили дополнительную ошибку:

     `LINK : fatal error LNK1158: cannot run 'rc.exe' error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\x86_amd64\\link.exe' failed with exit status 1158 

    Здесь есть отличный ответ, который решает проблему, поместив файл rc.exe в правильную папку для вашей системы.

    Python - лучший язык программирования в мире.