J'utilise Ubuntu et j'ai installé Python 2.7.5 et 3.4.0. Dans Python 2.7.5, je peux attribuer avec succès une variable x = Value('i', 2)
, mais pas dans 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 la version 3.3.2 en installant la source 3.4.0. Il s’est installé dans / usr/local/lib/python3.4.
Ai-je mis à jour correctement Python 3.4?
J'ai remarqué que Python 3.4 est installé dans sr/local/lib, alors que Python 3.3.2 est toujours installé dans sr/lib, il n'a donc pas été écrasé.
L'installation de libffi-dev
et la réinstallation de python3.7 ont résolu le problème.
pour construire proprement le py 3.7 libffi-dev
est requis, sinon les commandes ultérieures échoueront
Si vous utilisez RHEL/Fedora:
yum install libffi-devel
ou
Sudo dnf install libffi-devel
Si vous utilisez Debian/Ubuntu:
Sudo apt-get install libffi-dev
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
Exécutez maintenant le fichier configure
cloné ci-dessus:
./configure
make # alternatively `make -j 4` will utilize 4 threads
Sudo make altinstall
Got 3.7 installé et travaille pour moi.
On dirait que j'ai dit que je mettrais à jour cette réponse avec quelques explications supplémentaires et deux ans plus tard, je n'ai pas grand chose à ajouter.
python-dev
peuvent être nécessaires.altinstall
par opposition à install
dans la commande make .En dehors de cela, je suppose que le choix serait soit de lire la base de code de cpython à la recherche des directives #include
qu'il faut respecter, mais ce que je fais habituellement, c'est d'essayer d'installer le paquet et de continuer à lire le résultat de l'installation. les paquets requis jusqu'à ce qu'il réussisse.
Cela me rappelle l’histoire de la ingénieur, directeur et programmeur dont la voiture roule en bas d’une colline .
Les étapes détaillées pour installer Python 3.7 dans CentOS ou sur tout ordinateur Linux Redhat:
Sudo yum -y install gcc gcc-c++ Sudo yum -y install zlib zlib-devel Sudo yum -y install libffi-devel ./configure make make install
Je pensais ajouter les installations Centos:
Sudo yum -y install gcc gcc-c++
Sudo yum -y install zlib zlib-devel
Sudo yum -y install libffi-devel
Vérifiez la version python:
python3 -V
Créez virtualenv:
virtualenv -p python3 venv
Reportez-vous à this thread , pour l'installation personnalisée de libffi, il est difficile pour Python3.7 de trouver l'emplacement de la bibliothèque de libffi. Une autre méthode consiste à définir la variable CONFIGURE_LDFLAGS
dans le Makefile, par exemple CONFIGURE_LDFLAGS="-L/path/to/libffi-3.2.1/lib64"
.