Я недавно установил Ubuntu 19.04 на свою машину (я довольно новичок в этой ОС) и пытаюсь установить пакет pynusmv для работы в университете.
Однако, запустив команду pip3 для его установки:
pip3 install pynusmv
, я получаю список ошибок, и установка завершается неудачно. Я разговаривал с другими людьми, которые сделали то же самое, но не получили ни одной ошибки, поэтому я смущен тем, что его вызывает.
Единственное отличие, которое я могу найти, состоит в том, что мои одноклассники работаютВместо этого Ubuntu 18.04, поэтому я пытаюсь понять, в чем проблема.
Я пробовал несколько подходов, таких как обновление swig и других зависимостей, обновление python и pip3, установка инструментов разработки python;до сих пор ни один из них не работал.
Ожидаемый результат
Установка Pynusmv завершена успешно
Фактические результаты
Установка не удалась. Это часть журнала, который я получаю всякий раз, когда запускаю команду:
Collecting pynusmv
Downloading https://files.pythonhosted.org/packages/e0/b5/4c0f4970fefe927280e65f3951b5075da3f9ded2570478734b0e9d3b0f6a/pynusmv-1.0rc8.tar.gz (4.2MB)
|████████████████████████████████| 4.2MB 3.9MB/s
Requirement already satisfied: pyparsing in ./.local/lib/python3.7/site-packages (from pynusmv) (2.4.2)
Building wheels for collected packages: pynusmv
Building wheel for pynusmv (setup.py) ... error
ERROR: Command errored out with exit status 1:
command: /usr/bin/python3.7 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-jbjepncw/pynusmv/setup.py'"'"'; __file__='"'"'/tmp/pip-install-jbjepncw/pynusmv/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-jd7g3u8c --python-tag cp37
cwd: /tmp/pip-install-jbjepncw/pynusmv/
Complete output (197 lines):
[...]
patch -p0 -N < makefiles.patch
patching file minisat/core/Makefile
patching file minisat/simp/Makefile
touch minisat.patched
make -C minisat
make[2]: Entering directory '/tmp/pip-install-jbjepncw/pynusmv/dependencies/MiniSat/minisat'
cd simp && make lib && ranlib libminisat.a
make[3]: Entering directory '/tmp/pip-install-jbjepncw/pynusmv/dependencies/MiniSat/minisat/simp'
Making dependencies ...
Compiling: Solver_C.or ( Solver_C.C )
Solver_C.C:44:8: error: expected unqualified-id before user-defined string literal
extern "C"void MiniSat_Delete(MiniSat_ptr ms)
^~~~~~~
make[3]: *** [../mtl/template.mk:63: Solver_C.or] Error 1
make[3]: Leaving directory '/tmp/pip-install-jbjepncw/pynusmv/dependencies/MiniSat/minisat/simp'
make[2]: *** [Makefile:28: simp/libminisat.a] Error 2
make[2]: Leaving directory '/tmp/pip-install-jbjepncw/pynusmv/dependencies/MiniSat/minisat'
make[1]: *** [Makefile:41: minisat.built] Error 2
make[1]: Leaving directory '/tmp/pip-install-jbjepncw/pynusmv/dependencies/MiniSat'
make: *** [Makefile:37: minisat.build] Error 2
make: Leaving directory '/tmp/pip-install-jbjepncw/pynusmv/dependencies'
Packing them in a shared library
Copying the result in lib
building 'pynusmv_lower_interface.nusmv.addons_core._addons_core' extension
swigging pynusmv_lower_interface/nusmv/addons_core/addons_core.i to pynusmv_lower_interface/nusmv/addons_core/addons_core_wrap.c
swig -python -py3 -I./dependencies/NuSMV/NuSMV-2.5.4/nusmv -I./dependencies/NuSMV/NuSMV-2.5.4/nusmv/src -I./dependencies/NuSMV/NuSMV-2.5.4/cudd-2.4.1.1/include -o pynusmv_lower_interface/nusmv/addons_core/addons_core_wrap.c pynusmv_lower_interface/nusmv/addons_core/addons_core.i
pynusmv_lower_interface/nusmv/addons_core/addons_core.i:15: Error: Unable to find '../../../dependencies/NuSMV/NuSMV-2.5.4/nusmv/src/utils/defs.h'
pynusmv_lower_interface/nusmv/addons_core/addons_core.i:16: Error: Unable to find '../../../dependencies/NuSMV/NuSMV-2.5.4/nusmv/src/addons_core/addonsCore.h'
error: command 'swig' failed with exit status 1
----------------------------------------
ERROR: Failed building wheel for pynusmv
[...]
После этого он пытается очистить установку, но получает похожую ошибку. Я также пытался обмануть мою ошибку и отредактировать очевидную опечатку в зависимости, но это тоже не решает проблему (установка продолжается, но выполнение юнит-тестов на ней только возвращает ошибки).
Есть ли способ это исправить?