2016-05-10 34 views
18

Questo potrebbe essere stupido, ma io sono in grado di installare python cPickle immagine 3,5 finestra mobileinstallazione cPickle con Python 3.5

Dockerfile

FROM python:3.5-onbuild 

requirements.txt

cpickle 

con Quando provo a costruire l'immagine

$ docker build -t sample . 
Sending build context to Docker daemon 3.072 kB 
Step 1 : FROM python:3.5-onbuild 
# Executing 3 build triggers... 
Step 1 : COPY requirements.txt /usr/src/app/ 
Step 1 : RUN pip install --no-cache-dir -r requirements.txt 
---> Running in 016c35a032ee 
Collecting cpickle (from -r requirements.txt (line 1)) 
    Could not find a version that satisfies the requirement cpickle (from -r requirements.txt (line 1)) (from versions:) 
No matching distribution found for cpickle (from -r requirements.txt (line 1)) 
You are using pip version 7.1.2, however version 8.1.1 is available. 
You should consider upgrading via the 'pip install --upgrade pip' command. 
The command '/bin/sh -c pip install --no-cache-dir -r requirements.txt' returned a non-zero code: 1 

risposta

52

cPickle viene fornito con la libreria standard ... in python 2.x. Siete in python 3.x, quindi se volete cPickle, si può fare questo:

>>> import _pickle as cPickle 

Tuttavia, in 3.x, è più facile da usare solo pickle.

Non è necessario installare nulla. Se qualcosa richiede cPickle in python 3.x, allora questo è probabilmente un bug.

+0

Ahh! è la sostituzione di '_pickle' per' cPickle' in python 3.x? o "sottaceto" sarebbe altrettanto veloce? – kampta

+1

Sì, e 'pickle' usa' _pickle', quindi è anche veloce e può gestire sottoclassi. –

0

Su python3.x cPickle è cambiato da cPickle a _pickle. Così, nel python3.x, è possibile effettuare le seguenti operazioni se si desidera utilizzare cPickle

importazione _pickle

+0

è possibile utilizzare anche _pickle come cPickle – Naren