= 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 件のコメント:
コメントを投稿