Ubuntu 16.04 LTSで、cpickleをpipでインストールしようとしています。cpickleをpipでインストールしようとしています。
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 "<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
ネットで調べたら、こんなのがあった。
Python2.xでよくあるパターンは、純粋なPythonで実装されたモジュールの1つのバージョンと、C拡張として実装されたオプションの高速化バージョンを持つことです。
例えば、pickleとcPickleです。これは、これらのモジュールの各ユーザに、高速化バージョンをインポートし、純粋なPythonバージョンにフォールバックするという負担を強いることになります。Python 3.0では、高速化バージョンは純粋なPythonバージョンの実装の詳細とみなされます。
ユーザは常に標準バージョンをインポートすべきです。標準バージョンは高速化バージョンをインポートしようとし、純粋なPythonバージョンにフォールバックします。pickle / cPickle のペアはこの扱いを受けました。profileモジュールは3.1のリストにあります。StringIO モジュールは io モジュールのクラスになりました。
つまり、Python3ではライブラリとして提供されます。
import _pickle as cPickle
cPickle`はPythonの標準ライブラリの一部です。 Python 2では、Pythonと一緒にインストールされます。 Python 3 では、リリースノートを引用して 強調しています:
Python 2.xでよくあるパターンは、純粋なPythonで実装されたモジュールの1つのバージョンと、C拡張として実装されたオプションの高速化バージョンを持つことです。例えば、pickle と cPickle です。これは、これらのモジュールの各ユーザに、高速化されたバージョンをインポートし、純粋な Python バージョンにフォールバックするという負担を強いることになります。**Python 3.0では、高速化バージョンは純粋なPythonバージョンの実装の詳細とみなされます。ユーザーは常に標準バージョンをインポートすべきです。標準バージョンは高速化バージョンをインポートしようとし、純粋なPythonバージョンにフォールバックします。
cpickleをpipでインストールしようとした場合、あるPythonistaはそれが間違ったことであることを知らせようと考え、
cpickleプロジェクトを登録し(標準ライブラリモジュールにちなんだ他の多くのプロジェクトと一緒に)、
setup.py`を与えました。 しかし、パッケージの作成時か、PyPI側で何かがうまくいかず、ソース配布ファイルが不正な形になり、このようなエラーになっているようです。 そのため、このエラーが修正されたとしても、あなたが行おうとしていることを行うなという別のエラーが表示されます。