2016-05-10 24 views
18

Đây có thể là ngớ ngẩn nhưng tôi không thể cài đặt cPickle với python ảnh 3,5 Dockercài đặt cPickle với python 3.5

Dockerfile

FROM python:3.5-onbuild 

requirements.txt

cpickle 

Khi tôi cố gắng tạo hình ảnh

$ 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 

Trả lời

52

cPickle đi kèm với thư viện chuẩn… trong python 2.x. Bạn đang trên python 3.x, vì vậy nếu bạn muốn cPickle, bạn có thể làm điều này:

>>> import _pickle as cPickle 

Tuy nhiên, trong 3.x, thật dễ dàng chỉ để sử dụng pickle.

Không cần cài đặt bất kỳ thứ gì. Nếu một cái gì đó yêu cầu cPickle trong python 3.x, thì đó có thể là một lỗi.

+0

ahh! là '_pickle' thay thế cho' cPickle' trong python 3.x? hoặc 'pickle' sẽ nhanh như vậy? – kampta

+1

Có, và 'pickle' sử dụng' _pickle', vì vậy nó cũng nhanh và có thể xử lý các lớp con. –

0

Trên python3.x cPickle đã thay đổi từ cPickle thành _pickle. Vì vậy, trong python3.x, bạn có thể làm như sau nếu bạn muốn sử dụng cPickle

nhập _pickle

+0

nhập _pickle như cPickle cũng có thể được sử dụng – Naren

Các vấn đề liên quan