Ошибка компиляции Windows при установке pip из-за неверных флагов команд

Я пытался установить пакет lz4 на мою Windows-машину из PyPi, используя pip. Этот пакет не имеет загруженных колес, поэтому он должен был скомпилировать исходный код локально. У меня установлен компилятор Visual C++ для Python.

Я побежал:

pip install lz4

Это дало мне ошибку компиляции:

C:\Users\Nick\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Bin\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -Ic:\Python27\include -Ic:\Python27\PC /Tcsrc/lz4.c /Fobuild\temp.win32-2.7\Release\src/lz4.obj -std=c99 -O3 -Wall -W -Wundef -DLZ4_VERSION="r119"
cl : Command line error D8004 : '/W' requires an argument

При загрузке файла tar из PyPi я мог видеть, что аргументы компилятора -W и -Wundef были установлены явно, но они не являются допустимыми флагами для компилятора MSVC.

    ext_modules=[
    Extension('lz4', [
        'src/lz4.c',
        'src/lz4hc.c',
        'src/python-lz4.c'
    ], extra_compile_args=[
        "-std=c99",
        "-O3",
        "-Wall",
        "-W",
        "-Wundef",
        "-DLZ4_VERSION=\"r119\"",
    ])

Я удалил их из своей локальной копии исходного кода и запустил установку с измененным кодом.

python setup.py install

У меня все еще была проблема с отсутствующим stdint.h, который обсуждался в другом месте, но после решения этой проблемы установка прошла успешно.

Мои вопросы:

  • Я что-то здесь упускаю, что-то не так с моей настройкой, что означало сбой сборки?
  • Есть ли способ указать аргументы команды в setup.py для конкретной платформы?
  • На странице lz4 PyPi я вижу, что сборка проходит. Что это на самом деле означает?

0 ответов

Другие вопросы по тегам