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 deinstall
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
.
Ninguna de las soluciones funcionó. Tienes que recompilar tu python nuevamente; una vez que todos los paquetes necesarios se instalaron por completo.
Sigue esto:
- Instalar paquetes requeridos
-
Ejecute
./configure --enable-optimizations
https://gist.github.com/jerblack/798718c1910ccdd4ede92481229043be
Pasos detallados para instalar Python 3.7 en CentOS o cualquier máquina Linux de redhat:
- Descargue Python desde https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz
- Extrae el contenido en una nueva carpeta
- Abrir terminal en el mismo directorio
- 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