Ошибка компиляции 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 я вижу, что сборка проходит. Что это на самом деле означает?