2019年6月20日木曜日

anaconda インストール後、元pythonが消えた。ない


= anaconda インストール後に不具合
[2019-06-20 19:38]

ubuntu anacondaにpyopenglインストール
howm:///2019/06/2019-06-19-032007.txt
後に不具合あり

anacondaインストール前のpythonにpygame をインストールしておいたのに
importされない。
というより元のpythonが実行されない。anacondaのpythonしか実行されない。
調べていった順に記する。
最初は元のpythonが実行されていないと気が付かなかったのでpygame
がなぜimportされないのか調べていた。


1. モジュールパス確認をする。
参考サイト
note.nkmk.me
https://note.nkmk.me/python-import-module-search-path/
以下ファイル実行で確認できる。
import sys
import pprint
pprint.pprint(sys.path)

['/home/moto',
 '/home/moto/.pyenv/versions/anaconda2-5.3.0/lib/python27.zip',
 '/home/moto/.pyenv/versions/anaconda2-5.3.0/lib/python2.7',
 '/home/moto/.pyenv/versions/anaconda2-5.3.0/lib/python2.7/plat-linux2',
 '/home/moto/.pyenv/versions/anaconda2-5.3.0/lib/python2.7/lib-tk',
 '/home/moto/.pyenv/versions/anaconda2-5.3.0/lib/python2.7/lib-old',
 '/home/moto/.pyenv/versions/anaconda2-5.3.0/lib/python2.7/lib-dynload',
 '/home/moto/.pyenv/versions/anaconda2-5.3.0/lib/python2.7/site-packages',
 '/home/moto/.pyenv/versions/anaconda2-5.3.0/lib/python2.7/site-packages']
anacondaばかりで当然ここにはpygame はない。
このファイル現在のpythonに対してのモジュールパスのようだ。
今思えば。


2. pygameのパスを付け加える。
/以下pygameを検索してモジュールのありそうなところを探してやってみた。
export PYTHONPATH="/usr/lib/python2.7/dist-packages/:${PYTHONPATH}"
これはimportできた。
しかしこのころより元のpythonが実行されていないことに気がつく


3. 元のpython を実行させようとする。
たしか/usr/binにあったような気がしたので
export PYTHONPATH="/usr/bin/:${PYTHONPATH}" としてみる。
だめ。


4 pythonのバージョンを確認してみる
moto@~$ python --version
Python 2.7.15 :: Anaconda, Inc.
やはり anacondaのpython


5. whichをやってみる
moto@~$ which python
/home/moto/.pyenv/versions/anaconda2-5.3.0/bin/python
やはり anacondaのpython


6. pyenvはどうか
参考サイト
[Python] pyenvを使ってPythonの複数のバージョンを使い分ける
https://www.yoheim.net/blog.php?q=20170204
pyenvとはPythonの複数のバージョンを使い分けるコマンドラインツールで、
と書いてあった。

pyenv versionを使うと、現在有効なPythonバージョンを確認できます。
pyenv versionsで、インストール済みのPythonバージョンを一覧で確認できま
す。
という事なので実行。

moto@~$ pyenv version
anaconda2-5.3.0 (set by /home/moto/.pyenv/version)
moto@~$ pyenv versions
  system
* anaconda2-5.3.0 (set by /home/moto/.pyenv/version)
  anaconda2-5.3.0/envs/py35con


7. じゃーsystemのpythonにすればいいという事で
global  システム全体でのPythonバージョンを指定する
という事なので実行。
moto@~$ pyenv global system


8. 確認してみる
moto@~$ pyenv version
system (set by /home/moto/.pyenv/version)
moto@~$ python
Python 2.7.15 |Anaconda, Inc.| (default, Dec 14 2018, 19:05:28)
[GCC 7.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pygame
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named pygame


9. モジュールの場所
/usr/lib/python2.7      元のpython
~/.pyenv/versions/anaconda2-5.3.0/pkgs anaconda
conda list   現在の仮想環境のパッケージを確認のコマンド


10. 何かおかしい
pyenv global system  としてanacondaをしめすのがおかしい。
何か変な操作をしたのか。
globalを実行すると、~/.pyenv/versionというファイルができて、その中にバー
ジョンが記載されます。そのファイルを削除するとglobalの設定も無くなっちゃ
います。


11. 確認
vim ~/.pyenv/version


12. コマンドパスがおかしい
参考サイト
コマンドの場所を調べるには
https://www.atmarkit.co.jp/flinux/rensai/linuxtips/163wherecomd.html
 whichコマンドは、環境変数のPATHに設定されているディレクトリ順に調べ、
最初に見つかったコマンドを表示する。PATHに設定されている全ディレクトリ
を調べるには、-aオプションを使用する。


13. 実行
moto@~$ which -a python
/home/moto/.pyenv/versions/anaconda2-5.3.0/bin/python
/home/moto/.pyenv/shims/python
/home/moto/.pyenv/shims/python
/usr/bin/python
元のpythonが最後になっている。
ehco $PATHの結果も最後の方になっている。


14. 設定変更
.bashrcの各PATHの最後に以下を書く
#このpythonをメインで使いたいので最後に記する
export PATH="/usr/bin:$PATH"


15. 大騒ぎをして結局PATHだけの問題だった。

                                                       



0 件のコメント:

コメントを投稿

About

参加ユーザー

連絡フォーム

名前

メール *

メッセージ *

ブログ アーカイブ

ページ

Featured Posts