Ubuntu 16.04 LTS,试图用pip安装cpickle.我搜索了一下,还没找到任何有用的东西.
PYTHONPATH未设定.
错误信息
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 "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
A common pattern in Python 2.x is to have one version of a module implemented in pure Python,with an optional accelerated version implemented as a C extension; for example,pickle and cPickle.
This places the burden of importing the accelerated version and falling back on the pure Python version on each user of these modules. In Python 3.0,the accelerated versions are considered implementation details of the pure Python versions.
Users should always import the standard version,which attempts to import the accelerated version and falls back to the pure Python version. The pickle / cPickle pair received this treatment. The profile module is on the list for 3.1. The StringIO module has been turned into a class in the io module.
这意味着在Python3中它作为一个库…
import _pickle as cPickle