Ubuntu 16.04 LTS, mencoba menginstal cpickle dengan pip. Saya sudah mencari sedikit, belum menemukan sesuatu yang berguna.
PYTHONPATH tidak disetel.
user@hostname:~$ sudo -H pip3 install cpickle
Collecting cpickle
Using cached cpickle-0.5.tar.gz
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/usr/lib/python3.5/tokenize.py", line 454, in open
buffer = _builtin_open(filename, 'rb')
FileNotFoundError: [Errno 2] No such file or directory: '/tmp/pip-build-wn926hef/cpickle/setup.py'
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-wn926hef/cpickle/
You are using pip version 8.1.1, however version 9.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-q46tq1l8/cpickle/
You are using pip version 8.1.1, however version 9.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
# version info
user@hostname:~$ python --version
Python 2.7.12
user@hostname:~$ python3 --version
Python 3.5.2
# I don't think cache is the problem
rm -rf ~/.cache/
sudo -H pip install cpickle --no-cache-dir # same problem
sudo -H pip3 install cpickle --no-cache-dir # same problem
Memeriksa di interweb, saya menemukan ini
Pola umum dalam Python 2.x adalah memiliki satu versi modul yang diimplementasikan dalam Python murni, dengan versi akselerasi opsional yang diimplementasikan sebagai ekstensi C; misalnya, pickle dan cPickle.
Hal ini menempatkan beban mengimpor versi akselerasi dan kembali ke versi Python murni pada setiap pengguna modul-modul ini. Dalam Python 3.0, versi akselerasi dianggap sebagai detail implementasi dari versi Python murni.
Pengguna harus selalu mengimpor versi standar, yang mencoba mengimpor versi yang dipercepat dan kembali ke versi Python murni. Pasangan pickle / cPickle menerima perlakuan ini. Modul profil ada dalam daftar untuk 3.1. Modul StringIO telah diubah menjadi kelas dalam modul io.
Yang berarti di Python3 itu datang sebagai perpustakaan ...
import _pickle as cPickle
cPickle
adalah bagian dari library standar Python; Anda tidak menginstalnya dengan pip
. Di Python 2, sudah terinstal dengan Python. Di Python 3, mengutip catatan rilis dengan penekanan tambahan:
Pola umum dalam Python 2.x adalah memiliki satu versi modul yang diimplementasikan dalam Python murni, dengan versi akselerasi opsional yang diimplementasikan sebagai ekstensi C; misalnya, pickle dan cPickle. Ini menempatkan beban mengimpor versi yang dipercepat dan kembali ke versi Python murni pada setiap pengguna modul-modul ini. Dalam Python 3.0, versi akselerasi dianggap sebagai detail implementasi dari versi Python murni. Pengguna harus selalu mengimpor versi standar, yang mencoba mengimpor versi yang dipercepat dan kembali ke versi Python murni. Pasangan pickle / cPickle menerima perlakuan ini.
Dalam kasus khusus mencoba menginstal cpickle
dengan pip, beberapa Pythonista memutuskan untuk memberi tahu orang-orang bahwa ini adalah hal yang salah untuk dilakukan dan mendaftarkan proyek cpickle
(bersama dengan banyak proyek lain yang dinamai modul library standar) dan memberinya setup.py
yang tidak melakukan apa-apa selain keluar dengan kesalahan " Package 'cpickle' tidak boleh didownload dari pypi
". Namun, tampaknya ada sesuatu yang salah baik dalam membuat paket atau pada akhir PyPI yang telah menyebabkan file distribusi sumber menjadi cacat, menghasilkan kesalahan yang Anda lihat di sini. Jadi, bahkan jika kesalahan ini diperbaiki, Anda masih akan mendapatkan kesalahan yang berbeda yang memberitahu Anda untuk tidak melakukan apa yang Anda coba lakukan.