2015-12-02 9 views
0

Я пытался установить эту библиотеку Python на весь день. Это называется leven, и вы можете найти его здесь: https://pypi.python.org/pypi/leven/.Ошибка при установке пакета Python (leven), написанного на C++: параметр непривязанной командной строки g ++ --output-lib

Это было написано на C++, и я получаю ошибки при попытке построить и установить его. Для сборки и установки я запускаю из командной строки: python setup.py install. Она проходит часть его, пока не выйдет из строя при выполнении команды

C:\Program Files (x86)\CodeBlocks\MinGW\bin\g++.exe -mdll -static --entry [email protected] --output-lib build\temp.win32-2.7\Release\leven\lib_levenshtein.a --def build\temp.win32-2.7\Release\leven\_levenshtein.def -s build\temp.win32-2.7\Release\leven\_levenshtein.o -LC:\Python27\libs -LC:\Python27\PCbuild -lpython27 -lmsvcr90 -o build\lib.win32-2.7\leven\_levenshtein.pyd 
g++: error: unrecognized command line option '--output-lib' 
g++: error: build\temp.win32-2.7\Release\leven\lib_levenshtein.a: No such file or directory 
error: command 'C:\\Program Files (x86)\\CodeBlocks\\MinGW\\bin\\g++.exe' failed with exit status 1 

И все вещи, когда я бегу питон setup.py установить это:

C:\Python27\Lib\site-packages>python setup.py install 
running install 
running bdist_egg 
running egg_info 
writing requirements to leven.egg-info\requires.txt 
writing leven.egg-info\PKG-INFO 
writing top-level names to leven.egg-info\top_level.txt 
writing dependency_links to leven.egg-info\dependency_links.txt 
reading manifest file 'leven.egg-info\SOURCES.txt' 
reading manifest template 'MANIFEST.in' 
writing manifest file 'leven.egg-info\SOURCES.txt' 
installing library code to build\bdist.win32\egg 
running install_lib 
running build_py 
running build_ext 
building 'leven._levenshtein' extension 
C:\Program Files (x86)\CodeBlocks\MinGW\bin\gcc.exe -mdll -O -Wall -Ileven -IC:\Python27\include -IC:\Python27\PC -c leven/_levenshtein.cpp -o build\temp.win32-2.7\Release\leven\_levenshtein.o 
leven/_levenshtein.cpp: In function 'void __Pyx_RaiseArgtupleInvalid(const char*, int, Py_ssize_t, Py_ssize_t, Py_ssize_t)': 
leven/_levenshtein.cpp:1400:59: warning: unknown conversion type character 'z' in format [-Wformat] 
leven/_levenshtein.cpp:1400:59: warning: format '%s' expects argument of type 'char*', but argument 5 has type 'Py_ssize_t {aka int}' [-Wformat] 
leven/_levenshtein.cpp:1400:59: warning: unknown conversion type character 'z' in format [-Wformat] 
leven/_levenshtein.cpp:1400:59: warning: too many arguments for format [-Wformat-extra-args] 
writing build\temp.win32-2.7\Release\leven\_levenshtein.def 
C:\Program Files (x86)\CodeBlocks\MinGW\bin\g++.exe -mdll -static --entry [email protected] --output-lib build\temp.win32-2.7\Release\leven\lib_levenshtein.a --def build\temp.win32-2.7\Release\leven\_levenshtein.def -s build\temp.win32-2.7\Release\leven\_levenshtein.o -LC:\Python27\libs -LC:\Python27\PCbuild -lpython27 -lmsvcr90 -o build\lib.win32-2.7\leven\_levenshtein.pyd 
g++: error: unrecognized command line option '--output-lib' 
g++: error: build\temp.win32-2.7\Release\leven\lib_levenshtein.a: No such file or directory 
error: command 'C:\\Program Files (x86)\\CodeBlocks\\MinGW\\bin\\g++.exe' failed with exit status 1 
+0

Если это написано на C, почему тег C++ и почему вы пытаетесь скомпилировать его с g ++? –

+0

Извините, это написано на C++, после двойной проверки сайта, написано в C++ – Alo

+0

Я googled, и нашел страницу (https://groups.google.com/forum/#!topic/mingwusers/x1aTs8xbJss) с предложение заменить '--output-lib name' на' -out-implib = name' –

ответ

1

Ответ на этот вопрос должен был заменить " --output-lib name "для" -out-implib = name ".

Теперь у меня возникает другая проблема. Мне нужно изменить этот -output-lib на -implib = name в cygwinccompiler.py, поэтому он запускается, когда я вызываю python setup.py install этого пакета, но я продолжаю получать лишние пробелы между implib = и имя, я думаю, что это причина, по которой программа перестает работать. Любые идеи для этого вопроса?

+1

Хорошо, я также смог решить это, перейдя на Python27 \ Lib \ disutils \ cygwinccompiler.py> line225> Заменить: ** extra_preargs.extend (["- output-lib", lib_file]) ** to * * extra_preargs.extend (["- out-implib =" + lib_file]) ** – Alo