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.

21
demandé sur Georgy 2014-11-19 19:49:31

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.

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 .

50
répondu MikeiLL 2018-07-02 18:29:56

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
36
répondu dotbit 2018-08-06 08:03:55

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

7
répondu S.E Furgeson 2017-10-05 16:49:29

étapes détaillées pour installer Python 3.7 dans CentOS ou n'importe quelle machine redhat linux:

  1. télécharger Python de https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz
  2. extraire le contenu dans un nouveau dossier
  3. Ouvrir un Terminal dans le répertoire
  4. 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
1
répondu Alok Deep 2018-08-06 08:59:44