2014-11-19 14 views
5

Sto usando ubuntu e ho installato python 2.7.5 e 3.4.0. Per python 2.7.5, sono in grado di assegnare con successo una variabile x = Value ('i', 2) in python 2.7.5, ma non 3.4.0. Io sono sempre:Python3: ImportError: nessun modulo denominato '_ctypes' quando si utilizza il valore dal multiprocessing del modulo

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' 

Ho appena aggiornato a 3.3.2 attraverso l'installazione della fonte di 3.4.0. È installato in /usr/local/lib/python3.4

Ho eseguito l'aggiornamento a python3.4 correttamente?

Una cosa ho notato che python3.4 è installato in usr/local/lib, mentre python3.3.2 è ancora installato in usr/lib, quindi non è stato sovrascritto.

+0

Sembra che qualcosa ha ottenuto subito il fallo durante l'installazione della sorgente di 3.4.0. Cosa significa esattamente? Questo comando funzionava in 3.3.2? – bernie

+0

Ho installato dal codice sorgente utilizzando il comando sudo make install. Sì importando Valore da multiprocessing lavorato in 3.3.2 –

+0

'_ctypes' non è stato creato perché la dipendenza' libffi-dev' non era disponibile. Prendi in considerazione l'utilizzo del [deadsnakes PPA] (https://launchpad.net/~fkrull/+archive/ubuntu/deadsnakes). – eryksun

risposta

10

In un'immagine Debian fresca, clonazione https://github.com/python/cpython e in esecuzione:

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 build-essential 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 

E poi

./configure 
make 
sudo make altinstall 

Got 3.7 installato e funzionante per me.

+0

Fantastico. Ora, puoi dirmi come hai ottenuto la lista qui sopra? Per tentativi ed errori? : -O – Veky

+1

Onestamente, @Veky ho fatto una ricerca sul web per l'errore, "ImportError: nessun modulo chiamato '_ctypes'" e scavato, probabilmente ha provato alcune cose prima che funzionasse. Aggiornerà la risposta per chiarire con la mia scarsa comprensione di APT, Python, make, ecc. – MikeiLL

3

pensiero mi piacerebbe aggiungere il Centos installa:

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

Controllare versione di Python:

python3 -V

Crea virtualenv:

virtualenv -p python3 venv

+2

questo è stato contrassegnato come di bassa qualità e lo sto guardando nella coda di revisione. in realtà non funziona come risposta autonoma. raccomanderò la cancellazione, ma forse puoi migliorarla espandendola? – dbliss

1

Installazione libffi-dev e reinstallazione di python3.7 fi xed il problema per me.

per costruire in modo pulito py 3.7 libffi-dev è richiesto, altrimenti roba successiva non riuscirà

Problemi correlati