python compiler-errors install python-3.4 failed-installation

Python3: ImportError: ningún módulo llamado ''_ctypes'' cuando se utiliza el valor del multiprocesamiento del módulo



compiler-errors install (7)

Estoy usando Ubuntu y he instalado Python 2.7.5 y 3.4.0. En Python 2.7.5 puedo asignar con éxito una variable x = Value(''i'', 2) , pero no en 3.4.0. Estoy obteniendo:

Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/local/lib/python3.4/multiprocessing/context.py", line 132, in Value from .sharedctypes import Value File "/usr/local/lib/python3.4/multiprocessing/sharedctypes.py", line 10, in < module> import ctypes File "/usr/local/lib/python3.4/ctypes/__init__.py", line 7, in <module> from _ctypes import Union, Structure, Array ImportError: No module named ''_ctypes''

Acabo de actualizar a 3.3.2 mediante la instalación de la fuente de 3.4.0. Se instaló en /usr/local/lib/python3.4 .

¿Actualicé a Python 3.4 correctamente?

Una cosa que noté es que Python 3.4 está instalado en usr / local / lib , mientras que Python 3.3.2 todavía está instalado en usr / lib , por lo que no se sobrescribió.


Consulte este hilo , para la instalación personalizada de libffi, es difícil para Python3.7 encontrar la ubicación de la biblioteca de libffi. Un método alternativo es establecer la variable CONFIGURE_LDFLAGS en el Makefile, por ejemplo CONFIGURE_LDFLAGS="-L/path/to/libffi-3.2.1/lib64" .


En una nueva imagen de Debian, clonando https://github.com/python/cpython y ejecutando:

sudo apt-get update sudo apt-get upgrade sudo apt-get dist-upgrade sudo apt-get install build-essential python-dev python-setuptools python-pip python-smbus sudo apt-get install libncursesw5-dev libgdbm-dev libc6-dev sudo apt-get install zlib1g-dev libsqlite3-dev tk-dev sudo apt-get install libssl-dev openssl sudo apt-get install libffi-dev

Ahora ejecute el archivo de configure clonado arriba:

./configure make # alternatively `make -j 4` will utilize 4 threads sudo make altinstall

Tengo 3.7 instalado y trabajando para mí.

LIGERA ACTUALIZACIÓN

Parece que dije que actualizaría esta respuesta con más explicaciones y dos años después no tengo mucho que agregar.

  • Esta publicación SO explica por qué ciertas bibliotecas como python-dev podrían ser necesarias.
  • Esta publicación SO explica por qué uno podría usar el altinstall en lugar del argumento de install en el comando make .

Aparte de eso, supongo que la opción sería leer a través de la base de código de cpython buscando #incluir las directivas que deben cumplirse, pero lo que suelo hacer es seguir intentando instalar el paquete y seguir leyendo el resultado instalando los paquetes necesarios. hasta que tenga éxito.

Me recuerda la historia del Ingeniero, el Gerente y el Programador cuyo auto rueda cuesta abajo .


Instalar libffi-dev y reinstalar python3.7 me solucionó el problema.

para construir limpiamente py 3.7 libffi-dev es necesario o de lo contrario las cosas fallarán

Si usa RHEL / Fedora:

yum install libffi-devel

o

sudo dnf install libffi-devel

Si usa Debian / Ubuntu:

sudo apt-get install libffi-dev


Me encontré con este error cuando intenté instalar Python 3.7.3 en Ubuntu 18.04 con el siguiente comando: $ pyenv install 3.7.3 . La instalación se realizó correctamente después de ejecutar $ sudo apt-get update && sudo apt-get install libffi-dev (como se sugiere here ). El problema se resolvió there .



Pasos detallados para instalar Python 3.7 en CentOS o cualquier máquina Linux de redhat:

  1. Descargue Python desde https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz
  2. Extrae el contenido en una nueva carpeta
  3. Abrir terminal en el mismo directorio
  4. Ejecute el siguiente código paso a paso:

sudo yum -y install gcc gcc-c++ sudo yum -y install zlib zlib-devel sudo yum -y install libffi-devel ./configure make make install


Pensé que agregaría las instalaciones de Centos:

sudo yum -y install gcc gcc-c++ sudo yum -y install zlib zlib-devel sudo yum -y install libffi-devel

Verifique la versión de Python:

python3 -V

Crea virtualenv:

virtualenv -p python3 venv