Проблема с установкой libffi-dev для Python 3.7

При попытке установить pgadmin4 в режиме рабочего стола в моей системе Ubuntu я получил ошибку ModuleNotFoundError для _ctypes.

Я провел небольшое исследование и обнаружил, что _ctypes требует установки пакета libffi-dev. Однако кажется, что libffi-dev и, следовательно, _ctypes были установлены для Python 2.7, когда я запускаю import ctypes, он работает:

$ python2
Python 2.7.15+ (default, Nov 27 2018, 23:36:35) 
[GCC 7.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import ctypes
>>> 

Когда я пытаюсь сделать то же самое для Python 3.7, это не работает:

$ python
Python 3.7.3 (default, Jun 21 2019, 12:46:58) 
[GCC 7.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import ctypes
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.7/ctypes/__init__.py", line 7, in <module>
    from _ctypes import Union, Structure, Array
ModuleNotFoundError: No module named '_ctypes'

Как я могу добавить модуль _ctypes в свою конфигурацию Python 3.7?


person Kevin Vuong    schedule 28.06.2019    source источник


Ответы (1)


Если вы устанавливаете python из исходного файла, вам необходимо установить некоторые необходимые пакеты вручную, как указано в https://superuser.com/questions/1412975/how-to-build-and-install-python-3-7-x-из-исходного-на-debian-9-8.

На самом деле вы должны увидеть некоторые ошибки после make из-за того, что libffiне найдено, как показано на скриншоте ниже. Однако вы все равно можете запустить make install, несмотря на ошибку. Когда вы открываете python после установки и импортируете модуль, он выдает такую ​​​​ошибку.

Чтобы решить эту проблему, вы можете установить зависимый пакет, т. е. libffi или libffi-devel (redhat), до ./configure, make и make install, как указано в: Пакет libffi не найден в пути поиска pkg-config REDHAT6.5 и https://bugs.python.org/issue31652.

введите здесь описание изображения

person WANNISA RITMAHAN    schedule 05.11.2019