2016-05-10 2 views
18

Это может быть глупо, но я не могу установить cPickle с питона 3,5 Docker изображениеустановка cPickle с питоном 3.5

Dockerfile

FROM python:3.5-onbuild 

requirements.txt

cpickle 

Когда я пытаюсь создать изображение

$ 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 

ответ

52

cPickle поставляется со стандартной библиотекой ... в python 2.x. Вы находитесь на питона 3.x, поэтому если вы хотите cPickle, вы можете сделать это:

>>> import _pickle as cPickle 

Однако в 3.x, это проще всего использовать pickle.

Не нужно ничего устанавливать. Если что-то требует cPickle в python 3.x, то это, вероятно, ошибка.

+0

Ahh! является заменой '_pickle' для' cPickle' в python 3.x? или 'pickle' будет так же быстро? – kampta

+1

Да, и 'pickle' использует' _pickle', поэтому он также быстро и может обрабатывать подклассы. –

0

На python3.x cPickle изменился с cPickle на _pickle. Таким образом, в python3.x, вы можете сделать следующее, если вы хотите использовать cPickle

импорт _pickle

+0

import _pickle as cPickle также можно использовать – Naren

Смежные вопросы