お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2017-10-07 01:50:48

kisita_
メンバ
登録日: 2017-10-05

chainerの依存ライブラリインストール時に

以下の警告メッセージ(黄色文字で表示されています)は、どういった警告内容なのでしょうか?

親ディレクトリに今のユーザーは所有されていない、キャッシュを無効にしてほしい
ownerディレクトリ?ではない、もしくは権限がないからチェックしてください
であってますか?
これらの警告はインストールする場所がまずいと言っているのでしょうか?
解決策をご教示いただければ幸いです。

ubuntu@ubuntu-virtual-machine:~$ sudo pip install -U setuptools
The directory '/home/ubuntu/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/home/ubuntu/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.

オフライン

 

#2 2017-10-07 23:51:48

misha
メンバ
登録日: 2016-11-03

Re: chainerの依存ライブラリインストール時に

こんにちは。

エラーメッセージの訳は概ね正しいのですが、

If executing pip with sudo, you may want sudo's -H flag.

最後のこの部分が抜けています。
pipを実行する場合、sudoは通常使いません。
ですので、今回ご質問のケースでは、sudoを付けずに実行することで、正しく動作するはずです。

pip install -U setuptools

これで再度お試しください。

オフライン

 

#3 2017-10-08 01:34:45

kisita_
メンバ
登録日: 2017-10-05

Re: chainerの依存ライブラリインストール時に

解決いたしました。
おそらくご回答頂いたとおり、sudo pipによるエラーメッセージだと思います。
ですが、sudo pipでも、正常にダウンロードされていると思われるのですが、
合っていますか?

オフライン

 

#4 2017-10-08 03:50:34

misha
メンバ
登録日: 2016-11-03

Re: chainerの依存ライブラリインストール時に

確かにおっしゃる通り、ダウンロード自体正常に行われます。
しかし、ダウンロード先やファイルのオーナーは別になります。
(以下、Python2.7で話を進めます)

sudoなしのpip installを実行した場合、つまり

pip install -U setuptools

の場合、

ls -al ~/.local/lib/python2.7 ~/.cache/pip

で見ていただけると分かりますが
実行ユーザーのホームディレクトリ内に
~/.local/lib/python2.7/
~/.cache/pip/
が生成されます。
(インストール時生成ファイルやディレクトリのタイムスタンプに注目してください)

しかし、

sudo pip install -U setuptools

で実行しますと、
/usr/local/lib/python2.7/
とりわけ、
/usr/local/lib/python2.7/dist-packages/
これが生成されます。

sudo ls -la /usr/local/lib/python2.7/dist-packages

でご確認ください。
ちなみに、/usr/local/lib/python2.7/dist-packages以下の所有者はrootです。
一方、sudoなしのインストールで生成された、~/.local/lib/python2.7/, ~/.cache/pip/以下のオーナーは、実行者自身になります。

ただし、sudo pip install -U setuptoolsでインストールした場合、
ls -al ~/.local/lib/python2.7 ~/.cache/pip
で確認しても、該当のディレクトリは作成されていません。
sudoで~/.cacheを作成する場合は、sudoを付けたことで一時的にオーナーはrootとなり、作成先が~/でなくなるためです。
また、先のエラーメッセージの通り、単にsudo install -U setuptools だけですと、.cache/pipは生成できません。
rootユーザーのホームディレクトリである、/rootにも、sudo pip installによって、~/.cache/pip(/root/.cache/pipは生成されません。
これが、ご質問にあった、
The directory '/home/ubuntu/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
のエラー原因です。
したがって、どうしてもsudoを付けたい(どうしても必要な)場合、つまりroot所有でインストールをしたい場合は、このエラーメッセージの通り、

sudo -H pip install -U setuptools

と、-Hオプションを付けることで、sudo実行時の環境変数(ホームディレクトリ)を/rootとしておく必要があります。
これは先述の通り、sudoインストールの場合、一時的な実行者であるrootに環境変数(ホームディレクトリ)を適用するため、
sudoに-Hオプションを付けなければ、pip installは、~/.cache/pipの生成先が分からなくなり、先述のエラーを起こすことになります。


話を戻しますと、つまり簡単に言えば、sudoによる実行とそうでない実行とでは、ダウンロードが正常か否かに関わらず、動作の振る舞いが変わります。

sudo付きで正常にダウンロードされても、そのダウンロード先も異なりますし、オーナーも変わることになります。
この違いによって起きうる影響として、本来pipでインストールしたモジュールは、sudo権限なしで動く前提のものが多いのですが、
あえてsudoでインストールしたことにより、sudo権限のないコンポーネントが動作しなくなる問題がおきる可能性があること、
そして、pipがわざわざユーザー単位での実行環境構成を前提としているにも関わらず、システム全体の共通設定を強要されてしまうおそれが生じます。

このように、どうしてもシステム全体にpipインストールの反映をさせる必要性がある場合のみ、sudoを付けるべきで、
そうでない場合(実際、ほとんどのケースとして)は、sudoはつけないのが通例です。

オフライン

 

#5 2017-10-08 15:02:36

kisita_
メンバ
登録日: 2017-10-05

Re: chainerの依存ライブラリインストール時に

大変参考になりました。

cython、chainerに関しても、同じく
sudo pip install -U cython chainer
としていました。ですので 
一度dist-packagesを削除し、
pip install -U setuptools
pip install -U cython
pip install -U chainer

としたほうがいいと思いますが、dist-packagesは削除しても問題ないファイルなのでしょうか?
以下がdist-packagesの内容です
" ============================================================================
" Netrw Directory Listing                                        (netrw v155)
"   /usr/local/lib/python2.7/dist-packages
"   Sorted by      name
"   Sort sequence: [\/]$,\<core\%(\.\d\+\)\=\>,\.h$,\.c$,\.cpp$,\~\=\*$,*,\.o$,\
"   Quick Help: <F1>:help  -:go up dir  D:delete  R:rename  s:sort-by  x:special
" ==============================================================================
../                                                                             
./
Cython-0.27.1.dist-info/
Cython/
chainer-2.1.0.dist-info/
chainer/
filelock-2.0.12.dist-info/
funcsigs-1.0.2.dist-info/
funcsigs/
google/
mock-2.0.0.dist-info/
mock/
nose-1.3.7.dist-info/
nose/
pbr-3.1.1.dist-info/
pbr/

オフライン

 

#6 2017-10-08 21:58:48

misha
メンバ
登録日: 2016-11-03

Re: chainerの依存ライブラリインストール時に

kisita_ による投稿:

一度dist-packagesを削除し、
pip install -U setuptools
pip install -U cython
pip install -U chainer

としたほうがいいと思いますが、dist-packagesは削除しても問題ないファイルなのでしょうか?

いいえ。そのディレクトリは決して削除しないでください。
/usr/local/lib/python2.7/dist-packages はpipのシステムディレクトリであり、単にrootのローカルsite-packagesディレクトリ、ということではありません。

pipのパッケージ削除は、全てpipコマンドを使って実行します。

まず、下記のコマンドで、インストールしたパッケージを全て確認してください。

pip freeze

もし、上記setuptools, cython, chainerのみをインストールしているならば、以下のように表示されるはずです。

    adium-theme-ubuntu==0.3.4
    chainer==2.1.0
    Cython==0.27.1
    filelock==2.0.12
    funcsigs==1.0.2
    mock==2.0.0
    nose==1.3.7
    numpy==1.13.3
    pbr==3.1.1
    protobuf==3.4.0
    six==1.11.0
    unity-lens-photos==1.0

これらのパッケージを、

pip uninstall <パッケージ名>

でアンインストールしていきます。
ただし、これらパッケージはsudoでインストールしているので、同じくsudoでアンインストールします。

sudo -H pip uninstall <パッケージ名>

こうしないと、
    OSError: [Errno 13] 許可がありません: '/usr/local/lib/python2.7/dist-packages/chainer-2.1.0.dist-info/DESCRIPTION.rst'
このように、権限なしエラーが表示され、実行に失敗します。

また、
    adium-theme-ubuntu==0.3.4
    unity-lens-photos==1.0
この2つは、python-pipのインストール時に、元から含まれているものですので、削除は不要ですし、また削除もできません。
削除しようとしても、
    Not uninstalling adium-theme-ubuntu at /usr/lib/python2.7/dist-packages, outside environment /usr
    Not uninstalling unity-lens-photos at /usr/lib/python2.7/dist-packages, outside environment /usr
このようなメッセージが表示され、削除はされません。

そのため、インストール済みパッケージを全て削除するのであれば、pip freezeで表示されたパッケージを1つずつ片っ端からアンインストールします。
ただ、もし全て削除してよいことが分かっており、かつ1つずつ削除してゆくのが面倒であれば、
pip freezeの表示をxargsを通してpip uninstallにパイプで渡すとともに、削除確認も自動で[y]選択(pip uninstall -y)として、
一気にアンインストールしてもよいかも知れません。

pip freeze | xargs sudo -H pip uninstall -y

アンインストール実行後、もう一度pip freezeで確認し、アンインストール処理時に"Not uninstalling ..."と表示されたものだけが残っていれば、ご自身でインストールしたパッケージは全て削除された状態になります。

その後、改めてsudoなしのインストール

pip install -U setuptools cython chainer

これを実行すればよいはずです。

インストールが完了したら、再度pip freezeコマンドによって、正しく再インストールされていることをご確認ください。

オフライン

 

#7 2017-10-09 01:14:13

kisita_
メンバ
登録日: 2017-10-05

Re: chainerの依存ライブラリインストール時に

$ sudo -H pip uninstall unity-lens-photos==1.0
[sudo] ubuntu のパスワード:
DEPRECATION: Uninstalling a distutils installed project (unity-lens-photos) has been deprecated and will be removed in a future version. This is due to the fact that uninstalling a distutils project will only partially uninstall the project.
Uninstalling unity-lens-photos-1.0:
  /usr/lib/python2.7/dist-packages/unity_lens_photos-1.0.egg-info
Proceed (y/n)? y
  Successfully uninstalled unity-lens-photos-1.0

unity-lens-photos==1.0はおそらく削除できてしまいました。
削除できないファイルとして紹介されていたので、少々不安ではありますが
おそらくunityの開発に使うものだと思うので放置でもいいでしょうか?

他のパッケージを入れなおしたのですが
Exception:
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/pip/basecommand.py", line 215, in main
    status = self.run(options, args)
  File "/usr/local/lib/python2.7/dist-packages/pip/commands/install.py", line 342, in run
    prefix=options.prefix_path,
  File "/usr/local/lib/python2.7/dist-packages/pip/req/req_set.py", line 784, in install
    **kwargs
  File "/usr/local/lib/python2.7/dist-packages/pip/req/req_install.py", line 851, in install
    self.move_wheel_files(self.source_dir, root=root, prefix=prefix)
  File "/usr/local/lib/python2.7/dist-packages/pip/req/req_install.py", line 1064, in move_wheel_files
    isolated=self.isolated,
  File "/usr/local/lib/python2.7/dist-packages/pip/wheel.py", line 345, in move_wheel_files
    clobber(source, lib_dir, True)
  File "/usr/local/lib/python2.7/dist-packages/pip/wheel.py", line 323, in clobber
    shutil.copyfile(srcfile, destfile)
  File "/usr/lib/python2.7/shutil.py", line 83, in copyfile
    with open(dst, 'wb') as fdst:
IOError: [Errno 13] 許可がありません: '/usr/local/lib/python2.7/dist-packages/cython.py'

のようにエラーが出て、
pip freezeにも反映?されていませんでした。

オフライン

 

#8 2017-10-09 10:06:56

misha
メンバ
登録日: 2016-11-03

Re: chainerの依存ライブラリインストール時に

kisita_ による投稿:

unity-lens-photos==1.0はおそらく削除できてしまいました。
削除できないファイルとして紹介されていたので、少々不安ではありますが
おそらくunityの開発に使うものだと思うので放置でもいいでしょうか?

なんとも言えません。
というのは、
    $ sudo -H pip uninstall unity-lens-photos==1.0
    [sudo] hoge のパスワード:
    Not uninstalling unity-lens-photos at /usr/lib/python2.7/dist-packages, outside environment /usr
通常はこのように削除できないはずなので、どういう経緯で削除ができてしまったのか、が不明です。
そのため、復元すべきであるとも、復元しなくてよい、とも言えません。

また、次の問題ですが、

kisita_ による投稿:

他のパッケージを入れなおしたのですが
Exception:
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/pip/basecommand.py", line 215, in main
    status = self.run(options, args)
  File "/usr/local/lib/python2.7/dist-packages/pip/commands/install.py", line 342, in run
    prefix=options.prefix_path,
  File "/usr/local/lib/python2.7/dist-packages/pip/req/req_set.py", line 784, in install
    **kwargs
  File "/usr/local/lib/python2.7/dist-packages/pip/req/req_install.py", line 851, in install
    self.move_wheel_files(self.source_dir, root=root, prefix=prefix)
  File "/usr/local/lib/python2.7/dist-packages/pip/req/req_install.py", line 1064, in move_wheel_files
    isolated=self.isolated,
  File "/usr/local/lib/python2.7/dist-packages/pip/wheel.py", line 345, in move_wheel_files
    clobber(source, lib_dir, True)
  File "/usr/local/lib/python2.7/dist-packages/pip/wheel.py", line 323, in clobber
    shutil.copyfile(srcfile, destfile)
  File "/usr/lib/python2.7/shutil.py", line 83, in copyfile
    with open(dst, 'wb') as fdst:
IOError: [Errno 13] 許可がありません: '/usr/local/lib/python2.7/dist-packages/cython.py'

のようにエラーが出て、
pip freezeにも反映?されていませんでした。

このエラーは、

pip install -U setuptools cython chainer

を実行して出たのでしょうか。
パッケージ再インストール時の実行コマンドを、そのままの形でお教えください。

またエラーメッセージを見る限り、cythonのインストールで再び(sudo pip installのときと同様)、
/usr/local/lib/python2.7/dist-packagesへパッケージのインストールをしにいって、
権限エラーを起こしているように見受けられますので、現在のpip freezeの表示結果を、そのままお知らせください。

それと併せて、

ls -a /usr/local/lib/python2.7/{dist-packages,site-packages}

この表示結果もお知らせください。

その結果に合わせて、あるいは多少強引な手を使う必要も出てくるかも知れないため、できるだけ正確な情報をいただけると助かります。



なお、ちなみにこれはあくまで余談で、念のためお伺いしたいことなのですが、
現在お使いの環境はいつでもOSクリーンインストールしてもいいようなものでしょうか。
あるいは仮想マシンのように、いつでも環境の破棄と復元が可能なものでしょうか。
というのは、もし入門レベルの勉強と割り切って、いつでもOS自体の再インストールが可能なのであれば、
いっそ何度でもクリーンな状態からやり直したほうが早いし確実か、と思ったからです。

オフライン

 

#9 2017-10-09 11:39:08

kisita_
メンバ
登録日: 2017-10-05

Re: chainerの依存ライブラリインストール時に

~$ pip install -U setuptools cython chainer
Requirement already up-to-date: setuptools in /usr/local/lib/python2.7/dist-packages
Collecting cython
  Using cached Cython-0.27.1-cp27-cp27mu-manylinux1_i686.whl
Collecting chainer
Collecting six>=1.9.0 (from chainer)
  Using cached six-1.11.0-py2.py3-none-any.whl
Collecting filelock (from chainer)
Collecting protobuf>=2.6.0 (from chainer)
  Using cached protobuf-3.4.0-py2.py3-none-any.whl
Collecting mock (from chainer)
  Using cached mock-2.0.0-py2.py3-none-any.whl
Collecting nose (from chainer)
  Using cached nose-1.3.7-py2-none-any.whl
Collecting numpy>=1.9.0 (from chainer)
  Using cached numpy-1.13.3-cp27-cp27mu-manylinux1_i686.whl
Collecting pbr>=0.11 (from mock->chainer)
  Using cached pbr-3.1.1-py2.py3-none-any.whl
Collecting funcsigs>=1; python_version < "3.3" (from mock->chainer)
  Using cached funcsigs-1.0.2-py2.py3-none-any.whl
Installing collected packages: cython, six, filelock, protobuf, pbr, funcsigs, mock, nose, numpy, chainer
Exception:
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/pip/basecommand.py", line 215, in main
    status = self.run(options, args)
  File "/usr/local/lib/python2.7/dist-packages/pip/commands/install.py", line 342, in run
    prefix=options.prefix_path,
  File "/usr/local/lib/python2.7/dist-packages/pip/req/req_set.py", line 784, in install
    **kwargs
  File "/usr/local/lib/python2.7/dist-packages/pip/req/req_install.py", line 851, in install
    self.move_wheel_files(self.source_dir, root=root, prefix=prefix)
  File "/usr/local/lib/python2.7/dist-packages/pip/req/req_install.py", line 1064, in move_wheel_files
    isolated=self.isolated,
  File "/usr/local/lib/python2.7/dist-packages/pip/wheel.py", line 345, in move_wheel_files
    clobber(source, lib_dir, True)
  File "/usr/local/lib/python2.7/dist-packages/pip/wheel.py", line 323, in clobber
    shutil.copyfile(srcfile, destfile)
  File "/usr/lib/python2.7/shutil.py", line 83, in copyfile
    with open(dst, 'wb') as fdst:
IOError: [Errno 13] 許可がありません: '/usr/local/lib/python2.7/dist-packages/cython.py'

がpip install -U setuptools cython chainerの実行結果になります。

pip freeze
adium-theme-ubuntu==0.3.4
attrs==15.2.0
beautifulsoup4==4.4.1
blinker==1.3
chardet==2.3.0
command-not-found==0.3
cryptography==1.2.3
debtags==2.0
defer==1.0.6
dirspec==13.10
duplicity==0.7.6
enum34==1.1.2
html5lib==0.999
httplib2==0.9.1
idna==2.0
ipaddress==1.0.16
lockfile==0.12.2
lxml==3.5.0
ndg-httpsclient==0.4.0
oauthlib==1.0.3
oneconf==0.3.9
PAM==0.4.2
pexpect==4.0.1
Pillow==3.1.2
piston-mini-client==0.7.5
ptyprocess==0.5
pyasn1==0.1.9
pyasn1-modules==0.0.7
pycrypto==2.6.1
pycups==1.9.73
pycurl==7.43.0
pygobject==3.20.0
PyJWT==1.3.0
pyOpenSSL==0.15.1
pyserial==3.0.1
pysmbc==1.0.15.5
python-apt==1.1.0b1
python-debian==0.1.27
pyxdg==0.25
reportlab==3.3.0
requests==2.9.1
service-identity==16.0.0
software-center-aptd-plugins==0.0.0
Twisted==16.0.0
ubuntuone-client-data==14.4
urllib3==1.13.1
wxPython==3.0.2.0
wxPython-common==3.0.2.0
zope.interface==4.1.3

がpip freezeの現在の実行結果になります

$ ls -a /usr/local/lib/python2.7/{dist-packages,site-packages}
/usr/local/lib/python2.7/dist-packages:
.  ..  easy_install.py  easy_install.pyc  pip  pip-9.0.1.dist-info  pkg_resources  setuptools  setuptools-36.5.0.dist-info

/usr/local/lib/python2.7/site-packages:
.  ..

です。

仮想マシンとしてubuntuを使用していますので
仮にmisha様がお手上げの状態なら、環境の破棄等の処理になるかと思います。

オフライン

 

#10 2017-10-09 13:00:23

misha
メンバ
登録日: 2016-11-03

Re: chainerの依存ライブラリインストール時に

pip freezeを拝見すると、実はsetuptools, cython, chainer以外にもパッケージをインストールされているようですね。
これらが、いつの時点でインストールされたのか、また先述のpip uninstall によるパッケージ全削除を行われているのか、その辺りが不明ですが、

kisita_ による投稿:

仮想マシンとしてubuntuを使用していますので
仮にmisha様がお手上げの状態なら、環境の破棄等の処理になるかと思います。

はい。ある意味、お手上げです(笑)
というのは、この後もさらに想定外のトラブルが起きるのではないか、と懸念しているためです。
可能であれば、一旦インストール手順を整理した上で、クリーンなOS環境で再度インストールの実行をお勧めいたします。


ただ、環境の破棄を含め、何をしてもよい、という前提でしたら、まず下記をお試しください。

pushd /usr/local/lib/python2.7
sudo mv dist-packages/ /var/tmp/dist-packages.bak
popd
rm -r ~/.cache/pip/ ~/.local/lib/python2.7/site-packages/
sudo rm -rf /root/.cache/pip/

これでpipパッケージは全て削除されているはずです。
pip freezeで、adium-theme-ubuntu==0.3.4のみ、残っていることをご確認ください。
(unity-lens-photos==1.0は、すでに削除された状態のようですので)

pipパッケージが全て削除されているようでしたら、
もう一度、

pip install -U setuptools cython chainer

これだけをお試しの上、pip freezeの結果をご確認ください。
エラーもなく、正しくインストールされたならば、
    $ pip freeze
    adium-theme-ubuntu==0.3.4
    chainer==2.1.0
    Cython==0.27.1
    filelock==2.0.12
    funcsigs==1.0.2
    mock==2.0.0
    nose==1.3.7
    numpy==1.13.3
    pbr==3.1.1
    protobuf==3.4.0
    six==1.11.0
このようになっているはずです。

ここまで正しく動作していることが確認できたら、他のパッケージを、sudoなしでインストールしてみてください。

なお、上記では念のため、/usr/local/lib/python2.7/dist-packages/を、/var/tmp/dist-packages.bak/として退避しています。
その後ある程度の期間を見て、pip再インストール後の挙動に問題がないようでしたら、/var/tmp/dist-packages.bak/は削除してかまいません。

オフライン

 

#11 2017-10-09 13:56:53

kisita_
メンバ
登録日: 2017-10-05

Re: chainerの依存ライブラリインストール時に

確認ですが
私はchainer,setuptools,cythonの3つのパッケージを誤って
sudo pip install -U chainer setuptools,cython
としたので、
sudo -H pip uninstall numpy==........
のように書いてくださっていたパッケージのみをアンインストールしました。
その後、pip install -U install setuptools cython chainer
で現在のユーザ(rootではないユーザ)に権限をもたせられるものだと思っていました。

なので、他の(pip freezeで表示される)パッケージは削除の必要がないと思い、uninstallいたしませんでした。
(distpackagesに入っているものはroot権限の管理課にあるという解釈でした)

オフライン

 

#12 2017-10-09 18:16:50

misha
メンバ
登録日: 2016-11-03

Re: chainerの依存ライブラリインストール時に

なるほど、その認識だったことは了解いたしました。

しかし実際の問題としては、

kisita_ による投稿:

他のパッケージを入れなおしたのですが
Exception:
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/pip/basecommand.py", line 215, in main
    status = self.run(options, args)
  File "/usr/local/lib/python2.7/dist-packages/pip/commands/install.py", line 342, in run
    prefix=options.prefix_path,
  File "/usr/local/lib/python2.7/dist-packages/pip/req/req_set.py", line 784, in install
    **kwargs
  File "/usr/local/lib/python2.7/dist-packages/pip/req/req_install.py", line 851, in install
    self.move_wheel_files(self.source_dir, root=root, prefix=prefix)
  File "/usr/local/lib/python2.7/dist-packages/pip/req/req_install.py", line 1064, in move_wheel_files
    isolated=self.isolated,
  File "/usr/local/lib/python2.7/dist-packages/pip/wheel.py", line 345, in move_wheel_files
    clobber(source, lib_dir, True)
  File "/usr/local/lib/python2.7/dist-packages/pip/wheel.py", line 323, in clobber
    shutil.copyfile(srcfile, destfile)
  File "/usr/lib/python2.7/shutil.py", line 83, in copyfile
    with open(dst, 'wb') as fdst:
IOError: [Errno 13] 許可がありません: '/usr/local/lib/python2.7/dist-packages/cython.py'

のようにエラーが出て、
pip freezeにも反映?されていませんでした。

このエラーが発生した原因として、

kisita_ による投稿:

$ ls -a /usr/local/lib/python2.7/{dist-packages,site-packages}
/usr/local/lib/python2.7/dist-packages:
.  ..  easy_install.py  easy_install.pyc  pip  pip-9.0.1.dist-info  pkg_resources  setuptools  setuptools-36.5.0.dist-info

ここに残存しているファイル、とくに下記、

kisita_ による投稿:

~$ pip install -U setuptools cython chainer
Requirement already up-to-date: setuptools in /usr/local/lib/python2.7/dist-packages

つまり何らかの理由で、setuptoolsが正しくアンインストールできていなかった、ということが原因と考えられます。

さらにその他にも、先に見せていただいた、

kisita_ による投稿:

../                                                                             
./
Cython-0.27.1.dist-info/
Cython/
chainer-2.1.0.dist-info/
chainer/
filelock-2.0.12.dist-info/
funcsigs-1.0.2.dist-info/
funcsigs/
google/
mock-2.0.0.dist-info/
mock/
nose-1.3.7.dist-info/
nose/
pbr-3.1.1.dist-info/
pbr/

こちらと、残存ファイルの内容が異なっています。
しかし、これらがどのような経緯で残ってしまっているのかは、これも不明です。

そこで、この不整合の経緯を逐一追うのは難しいため、少々荒っぽい方法ですが、

pushd /usr/local/lib/python2.7
sudo mv dist-packages/ /var/tmp/dist-packages.bak
popd
rm -r ~/.cache/pip/ ~/.local/lib/python2.7/site-packages/
sudo rm -rf /root/.cache/pip/

この方法でpipパッケージを強制的に全初期化することで、問題が解決するかを試してみていただきたいわけです。

ちなみにおっしゃる通り、/usr/local/lib/python2.7/dist-packages/は、root管理のディレクトリです。
その解釈は合っているのですが、問題はそこでなく、このディレクトリだけを単純に削除してしまうと、その後のpipコマンド実行で障害を起こす危険性があります。
そのため、このディレクトリは決して手動削除せず、pip uninstallを使用してください、とお話をしたのですが、下記、
    rm -r ~/.cache/pip/ ~/.local/lib/python2.7/site-packages/
    sudo rm -rf /root/.cache/pip/
これらも併せて削除をしてしまえば、pipパッケージとキャッシュが全てが初期化された状態になるため、その後のpipコマンド実行でも不整合は起こさずに済むかも知れません。

実際にこれで、その後pipパッケージの再インストール等、全て問題なく実行ができるかどうか、ご確認ください。
(あるいは、もうすでにご確認いただいているでしょうか)

オフライン

 

Board footer

Powered by FluxBB