Python3: ImportError: aucun module nommé 'ctypes' lors de l'utilisation de la valeur du module multiprocessing
J'utilise Ubuntu et j'ai installé Python 2.7.5 et 3.4.0. En Python 2.7.5 je suis capable d'assigner avec succès une variable x = Value('i', 2)
, mais pas en 3.4.0. Je reçois:
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'
je viens de mettre à jour 3.3.2 en installant la source de 3.4.0. Il a été installé dans /usr/local/lib/python3.4 .
est-ce que J'ai mis à jour correctement Python 3.4?
une chose que J'ai remarqué que Python 3.4 est installé dans usr/local/lib , alors que Python 3.3.2 est toujours installé dans usr/lib , donc il n'a pas été réécrit.
4 réponses
sur une nouvelle image Debian, Clonage https://github.com/python/cpython et en cours d'exécution:
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
et ensuite
./configure
make
sudo make altinstall
a fait installer 3.7 et travaille pour moi.
LÉGÈRE MISE À JOUR
on dirait que j'ai dit que je mettrais à jour cette réponse avec plus d'explications et deux ans plus tard je n'ai pas beaucoup à ajouter.
- ceci explique pourquoi certaines bibliothèques comme
python-dev
pourraient être nécessaires. - ce tant de poster explique pourquoi on peut utiliser le
altinstall
par opposition àinstall
l'argument de la faire "151980920 de la commande".
mis à part cela, je suppose que le choix serait soit de lire à travers la base de codes cpython à la recherche de #include
directives qui doivent être respectées, mais ce que je habituellement faire est de continuer à essayer d'installer le paquet et de continuer à lire à travers la sortie installant les paquets requis jusqu'à ce qu'il réussisse.
me rappelle l'Histoire de L'ingénieur , le directeur et le programmeur qui est voiture roule en bas d'une colline .
installation de libffi-dev
et réinstallation de python3.7 a réglé le problème pour moi.
pour construire proprement PY 3.7 libffi-dev
est nécessaire ou sinon des choses plus tard échouera
si vous utilisez RHEL / Fedora:
yum install libffi-devel
ou
sudo dnf install libffi-devel
a pensé que J'ajouterais les Centos installs:
sudo yum -y install gcc gcc-c++
sudo yum -y install zlib zlib-devel
sudo yum -y install libffi-devel
vérifier la version python:
python3 -V
créer virtualenv:
virtualenv -p python3 venv
étapes détaillées pour installer Python 3.7 dans CentOS ou n'importe quelle machine redhat linux:
- télécharger Python de https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz
- extraire le contenu dans un nouveau dossier
- Ouvrir un Terminal dans le répertoire
- exécuter ci-dessous le code étape par étape:
sudo yum -y install gcc gcc-c++ sudo yum -y install zlib zlib-devel sudo yum -y install libffi-devel ./configure make make install