Проблема установки 'pynusmv' в Ubuntu 19.04 - PullRequest
1 голос
/ 02 ноября 2019

Я недавно установил 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

[...]

После этого он пытается очистить установку, но получает похожую ошибку. Я также пытался обмануть мою ошибку и отредактировать очевидную опечатку в зависимости, но это тоже не решает проблему (установка продолжается, но выполнение юнит-тестов на ней только возвращает ошибки).

Есть ли способ это исправить?

1 Ответ

1 голос
/ 11 ноября 2019

В конце концов, похоже, проблема была в Python. Ubuntu 19.04 поставляется с Python 3.7, и эта библиотека, похоже, не согласна с этим.

Я работаю в Pycharm, поэтому я решил создать виртуальную среду и установить в нее Python 3.6. В том, что pip3 установил pynusmv без проблем.

...