日々鍛錬

日本で一番?わかり易い??システムの落書き帳???を目指し????,日々鍛錬中な元SEさん主婦によるデベロッパとユーザと自分のための雑記帳

Windows におけるanaconda 仮想環境での読み込みエラー(解決)

意外なところで引っかかった.... 先日まで元気に動作して実行していた環境が突然,なんの前触れもなくエラーを吐き出したが解決

現象:

  1. anaonda で作成した仮想環境上でpandas, numpyが突如動かなくなる
    1. エラーの状況:
      >  import pandas as pd

      ModuleNotFoundError: No module named 'pandas'

      >  import numpy as np

      Original error was: DLL load failed while importing _multiarray_umath: 指定されたモジュールが見つかりません。'
      えーっと...確かに,先日,pandasを使ってcsvよみこんだり,dataframeを作成しましたよ...っと..orz

      また急になぜに??

    2. 最後に実行した仮想環境は何も変化していない
    3. また,当然だが,base環境も何も実行していない
    4. . だけど動かない...(´;ω;`)ウゥゥ

    環境を確認:(場所と仮想環境の名前などは適宜自分の環境で読み替える)

    インストール場所,platformの確認

    • OS: Windows 10 home
    • platform : win-64
    • anacondaの場所: C:\<anacondaインストール場所の親dir>\anaconda3
    • 仮想環境場所1: <anacondaの場所:>\envs\cvenv1
    • 仮想環境場所2: <anacondaの場所:>\envs\cvenv2

    以下より,commnad prompt (できるだけ,anaconda のPathが通る環境(ex: anaconda prompt, Anaconad powerShellが望ましい))

    anaconda Baseの環境

    Base の環境の確認は,現在の作業環境がbaseにいることを確認して,以下のコマンドで確認

    >conda info 
    - conda version : 4.10.3 - conda-build version : 3.21.4 - python version : 3.8.11.final.0

    anaconda 仮想環境(以下のコマンドから確認)

    > conda info -e 
    以下の出力が確認される(* : 現在の作業場所)
    # conda environments:
    #
    base                  *  <anacondaの場所:>
    cvenv1           <anacondaの場所:>\envs\cvenv1
    cvenv2           <anacondaの場所:>\envs\cvenv2
    ここでは,対象の場所を,cvenv1とする

    anaconda prompt上での環境の確認

    まずは以下のcommandで対象の仮想環境に移動

    > conda activate cvenv1
    この環境に,どのようなライブラリ,パッケージがインストールされているのかを確認
    >conda list
    問題のnumpyがインストールされていることが確認された...(´;ω;`)ウゥゥ おまけに,pandas もmatplotlibも...あともちろん,scipy, scikit-learnも... 当然よ,機械学習をここでガシガシ動かしていた... f:id:tomokop:20210915040511p:plain

    この時, - numpy :1.21.2 - pandas : 1.3.3 - jupyterlab : 3.1.7

    この段階で,[environment-kernels]は仮想環境でインストールされていないことを確認

    元のbaseの環境に戻る

    以下で,baseに戻る

    > conda deactivate
    ここでも,ライブラリ,パッケージのインストールを確認 - environment-kernels : 1.1.1 - numpy :1.20.3 - pandas : 1.3.2 - jupyterlab : 3.1.7

    もう一つの仮想環境(cvenvs2)内のライブラリなどを確認 - environment-kernels : なし - numpy :1.19.5 - pandas : 1.3.2 - jupyterlab : 3.1.7

    numpy, pandas,のインストール確認

    まずは,仮想環境2つ(cvenv1, cvenv2)とbase環境上でpandas, numpyが動くかをcommand prompt上で確認 以下はnumpyの場合として実行

    >python -c "import numpy as np; print(np.version); print(np.file);"
    > python -c "import pandas as pd; print(pd.version);print(pd.file);"
    これで,エラー吐き出しなしで各環境上にインストールしたバージョン番号が出力されているなら,numpy, pandasのインストールはOK 以下の吐き出しがそれぞれ確認される - 仮想環境1(cvenv1)
    1.21.2
    <cvenv1の場所>\lib\site-packages\numpy_init__.py
    - 仮想環境1(cvenv2)
    1.20.3
    <cvenv2の場所>\lib\site-packages\numpy_init.py
    - base
    1.19.5
     <anacondaの場所:>\lib\site-packages\numpy__init.py

    <重要>実際にjupyter lab (or notebook)を起動して,ライブラリの場所を確認

    実はここが肝でした. なんと,jupyterはデフォルトで,base環境のライブラリを読み込みます. 仮想環境からjupyter を起動したら,仮想環境にインストールされたライブラリやパッケージを読みに行きますが,baseで起動したjupyterはなんと,仮想環境をjupyter 上で切り替えてもbaseのsite-packageに引っ張られるという謎 実は今回のエラー解決はこの情報が大事

    これが,冒頭のエラーの掃き出しでした.

    そして,悲しいことに,私は,何度もここでpipやcondaでnumpy, pandasをインストールしてはアンインストールして,jupyer上で確認を繰り返ししました. しかし,一向に読み込むことはなかったです.

    謎...の沼,ってやつにハマりまくりました.

    でも,抜けてやる!の一心で,いろいろ探しまくります. 同じエラーがないか.など・・・

    以下などがヒットしました.

    仮想環境にenvironment_kernelsのインストール

    anacondaを使った仮想環境上のjupyterがmoduleをimportできない問題の解決 / jupyter上で環境を切り替える - 粗大メモ置き場

    このサイトを参考に実行,検証したのは,仮想環境1(cvenv1)の環境に,environment_kernelsのインストールを実行してみました.

    pip install environment_kernels
    しかし,jupyter上ではnumpy, pandasともに相変わらず何も読み込めない.. 関連サイトを検索すると,コマンドで「environment_kernels」,「environment-kernels」....

    いろんなサイトでハイフン(-), アンダースコア(_)がごっちゃ...

    どっちだよ...と泣きました... 

    こんな時は, pyplを信じ,以下を実行

    > pip install environment_kernels
    environment_kernels · PyPI

    ちなみに,,,「> pip install environment-kernels 」も実行できました....

    なんでだろう...(なぜ,インストールできたのか,これは分かりません,おまけにconda list にenvironment-kernelsとハイフンのバージョンがありました...)

    仮想環境にjupyterを入れてみる

    Anaconda の Jupyter Notebook で ModuleNotFoundError が発生した場合のトラブルシュート |

    仮想環境1(cvenv1)にjupyterの本体を入れてみる もともと,conda listで,「jupyter」がなかったので,以下を参考に入れてみる

    しかし,一向に変わらなかった jupyterとenvironment_kernelsは関係ないようだ

    mkl*.libの環境を環境変数として設定

    以下のメッセージを頼りに,numpyに注目して,環境を見直す

    Original error was: DLL load failed while importing _multiarray_umath: 指定されたモジュールが見つかりません。'

    IMPORTANT: PLEASE READ THIS FOR ADVICE ON HOW TO SOLVE THIS ISSUE!

    [https://numpy.org/doc/stable/user/troubleshooting-importerror.html:embed:cite]

    Importing the numpy c-extensions failed. This error can happen for different reasons, often due to issues with your setup.

    Path通ってないよ?いいの?と来たので,,, ということで,Windowsさまのユーザ変数環境にmkl関連のライブラリの場所をpathとして設定

    <anacondaの場所:>\Library\bin
    そして,,,,動かない.... orz(ぐずる)

    このpathの記述をもとに戻す..(環境変数から追加内容を削除)

    ほか,pyzmを入れ直せだとか,色々ありました.
    よく考えたら,そもそも,私はデフォルトのpathを壊さないようにしたい派です.
    だから,入れたことないものを入れ直せはちょっとよろしくない.

    じゃ,残りはJupyter そのものがおかしい,となるので,Jupyterそのものを見直すことに.

    jupyterそのもの設定を見る

    jupyterで何をどう読んでんのよ?となる. (あとから考えたら,こっちから先だったと後悔)

    まずはjupyterを各環境に入って,jupyterを起動させ,以下のコマンドを叩き込んでみる.

    import numpy as np
    import pandas as pd

    print(np.version); print(np.file); print(pd.version); print(pd.file);

    仮想環境1(cvenv1)

    1.21.2
    <仮想環境1のインストール場所>\lib\site-packages\numpy_init__.py
    1.3.3
    <仮想環境1のインストール場所>\lib\site-packages\pandas_init__.py

    仮想環境2(cvenv2)

    • environment_kernelなし
    • pandas, numpy の再インストールなし

    以下が出力

    1.19.5
    <仮想環境2のインストール場所>\lib\site-packages\numpy_init__.py
    1.3.2
    <仮想環境2のインストール場所>\lib\site-packages\pandas_init__.py

    base

    1.20.3
    <anacondaの場所>\lib\site-packages\numpy_init__.py
    1.3.2
    <anacondaの場所>\lib\site-packages\pandas_init__.py

    各仮想環境からの設定では問題なさそうとのことで,baseから仮想環境を切り替えて同じことを実行

    仮想環境1(cvenv1)

    エラーでnumpyが実行できない

    仮想環境2(cvenv2)

    1.20.3
    <anacondaの場所>\lib\site-packages\numpy_init__.py
    1.3.2
    <anacondaの場所>\lib\site-packages\pandas_init__.py

    ....おや?? これ,,,baseになっている...

    とのことで,以下をjupyter上で実行

    import sys
    import pprint

    pprint.pprint(sys.path)

    以下が出力

    ['<jupyterを読み込んだ場所>,
     '<仮想環境場所1>\python38.zip',
     '<仮想環境場所1>\DLLs',
     '<仮想環境場所1>\lib',
     '<仮想環境場所1>',
     '',
     '<仮想環境場所1>lib\site-packages',
     '<仮想環境場所1>lib\site-packages\win32',
     '<仮想環境場所1>\lib\site-packages\win32\lib',
     <仮想環境場所1>\lib\site-packages\Pythonwin',
     '<仮想環境場所1>\lib\site-packages\IPython\extensions',
     'C:¥User\Username\.ipython']

    問題ない.

    で,次が重要!

    !pip show numpy
    実行するとなんと!
    Name: numpy
    Version: 1.20.3
    Summary: NumPy is the fundamental package for array computing with Python.
    Home-page: https://www.numpy.org
    Author: Travis E. Oliphant et al.
    Author-email: None
    License: BSD
    Location: <span style="color: #d32f2f"><anacondaの場所>\lib\site-packages</span>
    Requires:
    Required-by: tifffile, tables, statsmodels, seaborn, scipy, scikit-learn, scikit-image, PyWavelets, pyerfa, patsy, pandas, numexpr, numba, mkl-random, mkl-fft, matplotlib, imageio, imagecodecs, h5py, Bottleneck, bokeh, bkcharts, astropy
    なんと,,,baseが読み込まれていることが発覚!

    では,環境がどうなっているのかというと,

    !conda info -e

    # conda environments:
    #
    base                  *  <anacondaの場所>
    cvenv1               <anacondaの場所>\envs\cvenv1
    cvenv2               <anacondaの場所>\envs\cvenv2

    上記からわかるように,base環境を読み込んでいた!

    これがまさに原因!

    いよいよ解決へ!

    これはjupyter側の仮想環境の読み込みの問題

    そして,jupyterをbaseで立ち上げる時,よく読むと,「c.EnvironmentKernelSpecManagerって,.env_dirs? もしかして,conda_env_dirsじゃないの?」な記述...

    ということで,C:/Users/username/.jupyter/jupyter_notebook_config.pyを開き,c.EnvironmentKernelSpecManagerをCtrl+fで検索し,対象箇所へ移動

    そして,以下として修正

    c.EnvironmentKernelSpecManager.env_dirs=['<anacondaのインストール場所>\envs\']

    c.EnvironmentKernelSpecManager.conda_env_dirs=['<anacondaのインストール場所>\envs\']

    Jupyterをbaseから起動しなおして,base上のjupyterで仮想環境をそれぞれ変更すると,仮想環境1.,仮想環境2がそれぞれ読み込まれていることを再確認

    例えば,仮想環境1なら

    
    Name: numpy
    Version: 1.21.2
    Summary: NumPy is the fundamental package for array computing with Python.
    Home-page: https://www.numpy.org
    Author: Travis E. Oliphant et al.
    Author-email: None
    License: BSD
    Location: <仮想環境1cvenv1の場所>\lib\site-packages
    Requires:
    Required-by: tifffile, tables, statsmodels, seaborn, scipy, scikit-learn, scikit-image, PyWavelets, pyerfa, patsy, pandas, numexpr, numba, mkl-random, mkl-fft, matplotlib, imageio, imagecodecs, h5py, Bottleneck, bokeh, bkcharts, astropy
    

    以上で完了~ さてさて,numpyの入れ直しに色々影響があったのが,matplotlib,pandas, seaborn, scikit-learn をpip で入れ直しました. これでもとの環境に戻りました.

    いろんなサイトを勉強したけど,あまりヒットする方法がなかったのです.

    Jupyterのサイトも回りましたが...

    ということで情報共有とします.

    ...無事解決したころは,,,,朝でして,今締め切りを心配している状態です.

    ただ..謎なのは,,,どうして,これまで実行できていたのでしょうか....

    ちょっとここらは分からないです. 強いていうなれば,...も今は思いつかないので,思い出したら追記します.

    ひとこと

    • 私がわからないだけだけど,jupyterさん,,,log吐きファイルってあるのかな.... 探したけど見つけられなかった...
    • ubuntu様,Mac様に置かれて,同じ問題を心配したが順調に動いていることを確認した.. なぜwindowsさまだけなのかなぁ...
    • できるだけ環境pathにオリジナル性は入れたくない
    • つくづく,windowsさまに私は嫌われていると実感
    • もしかして,先日Kinectのライブラリを入れなおしたこと,Visual studio 2019を入れたことが原因?と思ったりです...(それは嫌だが,濃厚になってきた...

Windows におけるanaconda 仮想環境での読み込みエラー(解決)

意外なところで引っかかった.... 先日まで元気に動作して実行していた環境が突然,なんの前触れもなくエラーを吐き出したが解決

現象:

  1. anaonda で作成した仮想環境上でpandas, numpyが突如動かなくなる
  2. 最後に実行した仮想環境は何も変化していない
  3. また,当然だが,base環境も何も実行していない
  4. だけど動かない...(´;ω;`)ウゥゥ

環境を確認:(場所は適宜自分の環境で読み替える) OS: Windows 10 home platform : win-64 anacondaの場所: C:\<anacondaインストール場所の親dir>\anaconda3 仮想環境場所1: <anacondaの場所:>\envs\condavenv1 仮想環境場所2: <anacondaの場所:>\envs\condavenv2

Baseの環境 - conda version : 4.10.3 - conda-build version : 3.21.4 - python version : 3.8.11.final.0

仮想環境(以下のコマンドから確認)

conda info -e <<

conda environments:

# base * <anacondaの場所:> condavenv1 <anacondaの場所:>\envs\condavenv1 condavenv2 <anacondaの場所:>\envs\condavenv2 <<

R で PLS, PCA, PCRを解析するライブラリroplsの設定

便利らしいが,落とし穴が...
install.packagesに含まれていないので,,,,設定メモ

www.bioconductor.org

公式のサイトを参考にR Terminal上でインストール


```
>install.packages("BiocManager")
>BiocManager::install("ropls")
```

あとは,コード上で以下をタイプして,利用

```
>library(ropls)
```

ubuntu 18.04 + R + Jupyter

きっかけ

  • WindowsでRをインストールした.だけど,Ubuntuでも使うから(Macもだけど)
  • コケた箇所
    • git のキーゲット
    • CRANの公式サイトで最後に方法があったこと・・(これは本当に悲しくなった・・

システムの構成

インストール手順(成功例と失敗例を一緒に)

書き方がめんどくさいので,Skipを考慮する

  1. ubuntu本体のアップデート 後にもするが,なんとなくやっぱりしておくと気持ちがいい
>  sudo apt update
>  sudo apt upgrade
  1. CRAN のキーを取得 公式サイトに十分記載はあるけど,非常にめんどくさい こちらがだめなら,こちらを,状態になるけど,動くKeyを取得する.
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9

こちらがだめなら,以下をでキーを取得

gpg --keyserver keyserver.ubuntu.com --recv-key E298A3A825C0D65DFD57CBB651716619E084DAB9

追伸:私は3番目のここでようやくキーが取得...

gpg -a --export E298A3A825C0D65DFD57CBB651716619E084DAB9 | sudo apt-key add -
  1. source.listを書き換える
/etc/apt/source.list

以下を最後に追加する.

# Rのアップデートサイト
deb https://cloud.r-project.org/bin/linux/ubuntu bionic-cran40/

ちなみに,bionicは,Ubuntu18.04, binonic-cran40は, R.4.0xの最新版を入れるというそれぞれのおまじない

  1. 再度,Ubuntuをアップデートする
>  sudo apt update
>  sudo apt upgrade
  1. R 本体のインストール

Keyが取得できると,以下がスムーズ 

sudo apt-get install r-base-dev

6. install.packages()でシステムを更新 TerminalでRを起動し,以下のコマンド

install.packages()

7.の記述の依存関係が現れて,コケて大変だった.... どうも,curl周辺のopensslが入っていないことが問題だったようです.

パッケージ ‘r-base-dev’ のインストールは、ゼロでない終了値をもちました

「ゼロでない終了値をもちました」がよくわからないError Message だっただけに,ずっと大変... 依存のライブラリ関連が入っていないことなどが課題らしい..

6. パッケージ間の依存問題

r-base : 依存: r-base-core (>= 4.0.2-1.2004.0)が依存関係にあるとごねられる.... いろいろ調べ,以下を実行

>sudo apt-get install libcurl4-openssl-dev
>sudo apt-get install libxml2-dev

こちらが参考になりました.

yngpt.hatenadiary.jp

再度,R terminalに入り,実行 そして,Permission deninedとかのエラー....

再度Rを管理者モードで入る

>sudo R -i

Rコマンドラインで6.のパッケージ更新 完了

  1.  Jupyter の環境にRのカーネルを設定 Windowsはすぐ以下のコマンドで十分対応ができた. なのに,Ubuntuはよくわからなかった.... またしても,「ゼロでない終了値をもちました」,,, もう知らんがな!
>install.packages(c('repr', 'IRdisplay', 'evaluate', 'crayon', 'pbdZMQ', 'devtools', 'uuid', 'digest'))
>devtools::install_github('IRkernel/IRkernel')
>IRkernel::installspec(user=FALSE)

エラーメッセージは,以下がでた.

install.packages('devtools') ゼロでない終了値を持ちました
install.packages('httpr') ゼロでない終了値を持ちました
install.packages('digest') ゼロでない終了値を持ちました

再度,以下を通常のTerminalでタイプ

sudo apt-get install libssl-dev

これでなんとか,最初の関門(1行目, 2行目)が通る

8.最終問題(IRkernel::installspec(user=FALSE)のエラー) 最後に,R上で,Jupyter のカーネルにRを設定するのですが,以下のエラー

IRkernel::installspec() でエラー: 
  jupyter-client has to be installed but “jupyter kernelspec --version” exited with code 127.
 追加情報:  警告メッセージ: 
 system2("jupyter", c("kernelspec", "--version"), FALSE, FALSE) で: 
   命令の実行中にエラーが起きました

・・・もう吐き気しかないよ....

つまり,Kernelを通すためのバージョンと,どこにRが通っている?という問題らしくて...

同じような悩みの方がいて,その方の議論からPathの設定を行う.

github.com

通常のTerminal上で以下をタイプ

Sys.getenv('PATH')

そうすると,Pathが通った情報がずらずら〜と出てくるので,その結果をコピーしておく

Rをsudo -i Rで起動し,以下をタイプ

> Sys.setenv(PATH='Sys.getenv('PATH')結果をここにコピペ')
> IRkernel::installspec(user=FALSE)

エラーがなければ,Jupyter を起動し,カーネルにRが入っていることを確認. これで終わり.... (Rはやっぱりあまり得意じゃない)

Jupyter lab(notebook)上でRも扱える?

せっかくデータサイエンスするのであれば,PythonだけでなくRも使えると便利かなと考えて,導入検討をした.

今回,インストール環境は以下の通り.

  • OS: Windows 10
  • Anaconda すでに導入
  • jupyter をconda install からインストール
  • python:3.7.3

Rのインストール

RのCRANより,Rのインストーラをダウンロードし,インストール

なお,Rのインストールは以下のQiitaの記事と同じ

qiita.com

ただし,インストールしたソフトウェアを管理しているので,インストール場所は自分の環境に従う.

Rをインストールして,Jupyter の環境を整えようとするが,以下の通り怒られる.

エラー: Git does not seem to be installed on your system.

これは,Githubが環境に入っていないからとのことでした(後述).
なのでGitHubも環境にインストールする.

GitHubのインストール

こちらのWebページの内容に従い,GitHubをインストール

eng-entrance.com

GitHubのHOMEは,研究の今後を検討し,ストレージを取りやすいように,ということで,私の環境は,以下にした.


D:\MyStrage\Git\home


また,RSAについても問い合わせが出てくる.
本来は作成しておいておくほうがよい. ただし,自分のローカルの情報のみであれば,とくに問題もないし,これ以上の進行においても特に影響がないので,理解が難しいなら,このRSAを作成する手順は除いていいかも... ただ,,,GithubのIDは持っておいたほうがよいと思うので,個人でご検討をお願いします.

R とPythonを連携するためのカーネルのインストール

環境変数にHOMEを追加しているなどを行っているので,一度,コンソール(おそらく起動しているのは,Rstudioかなと想定)を終了させておく.
また,Anaconda Promptが起動されているのであれば,Anaconda Promptを終了させておく.

Rstudioを再度実行して,以下のコマンドを実行

> install.packages(c('repr', 'IRdisplay', 'evaluate', 'crayon', 'pbdZMQ', 'devtools', 'uuid', 'digest'))

ここで,エラーが出るようなら,以下のコマンドで一度IRkernel, IRdisplay を削除し,再度上記のコマンドを実行する

remove.packages(c("IRkernel", "IRdisplay"))

一応,私は以下のコマンドまでを,RStudioで実行しました.

>devtools::install_github('IRkernel/IRkernel')

最後に,RStudioにて,以下のコマンド実行を行うが,どうも,IRkernel がないよと怒られました.

IRkernel::installspec()

色々調べると,どうも,Anacondaの環境下で行うとよろしいとのことでしたので,Anaconda Promt を再起動して,Rの実行を読み込む

(base) ><Rをインストールした場所へのPath>\bin\x64\R.exe

Rが起動するので,Rのモードで以下のコマンドを実行する

IRkernel::installspec()

これで,Jupyter を起動し,Rのカーネルが存在していることを確認すると,Rが実行できる.

Pythonで仮想環境を構成する

ベースの環境でそのまますると,pipのレガシィ関連で2.xと3.xの環境がどうも混ざるぽい・・・
なので環境が壊れてしまう.
仮想環境を作成し, 仮想環境上で設定を行ってから入れていくようにする 

インストール環境

  • Windows 10 (Mac OS High Sierra)
  • Python 3.7 (conda update --all を行う)
  • Anaconda
  • 各ソフトウェアはanaconda cloudよりインストール

anaconda.org

  • pipについては, python3.xに統一したいので, pip3をpipとしてエイリアスで設定

インストール手順

anaconda cloud からインストールする.
注意事項としては以下がポイント

必ず仮想環境を作成して行うこと

ベースの環境でそのまますると,pipのレガシィ関連で2.xと3.xの環境がどうも混ざるぽい・・・
なので環境が壊れてしまう.
仮想環境を作成し, 仮想環境上で設定を行ってから入れていくようにする 

仮想環境を作成するコマンド:

conda create -n venvname python=3.x

ここで,venvnameは仮想環境の名前であり, 第5の引き数 python=3.xではpythonのVersionを入力する.
python のVersionを3.7, 仮想環境の名前をtestenv とすると, コマンドは以下の通り

conda create -n testenv python=3.7

この仮想環境上で今後の作業を行うようにする.

また, 今後この環境をどんどん拡張したい, つまり,環境のコピーはできないかのコマンドは以下の通り

conda create -n envclone --clone venvname

これで環境を複製していろいろトライができそう

追伸:
仮想環境(ここではtergetenvとした)を削除するコマンドは以下の通り、

conda env remove --name targetenv

ただし, ちゃんと事前に以下のコマンドから削除となる対象コマンドがあることを確認し,上記のコマンドを実行すること

conda info -e

PythonでGUIの構成を検討する

研究でGUIの開発を行う.
一番手っ取り早い方法は何か,いろいろ考えたけど,まだわからないのでメモ書き
まずは,Python自体ですべての作成を考えてみる.

ということで調べたら,Kivyとなるものを発見

kivy.org

インストール環境

  • Windows 10 (Mac OS High Sierra)
  • Python 3.7 (conda update --all を行う)
  • Anaconda
  • 各ソフトウェアはanaconda cloudよりインストール

anaconda.org

  • pipについては, python3.xに統一したいので, pip3をpipとしてエイリアスで設定しておくとトラブルの回避にできるだろう
必ず仮想環境を作成して行うこと

ベースの環境でそのまますると,pipのレガシィ関連で2.xと3.xの環境が混ざり,トラブルが発生した.
なのでエイリアスでpipをpip3として利用できるようにしたほうがよいかと考察した.
また,そのまま直接の環境でシステムを構成していくと,後々のトラブルにもつながる.
(そりゃ当たり前だよ。。。)
なので,設定はまず仮想環境の上でいろいろ検証すべき.
以下の設定から,検証関係を考えるようにする.
この検証については,別で記事を残す
tomokop.hatenablog.com

kivy インストールにあたり

必要なソフトウェアをcondaコマンド, pipからインストールしておく

cythonのインストール(conda コマンド)

conda install -c conda-forge cython

pygame

この記事の記述現在,conda コマンドで導入してもどうし手なのか認識されなかった.
原因を探しているが,現在のところ理解できていない.
なので,pip3 からの導入を検討した.
ただし,このpip3でのpygameインストールにおいて,2.xと3.xの混在にならないよう,コマンドの混在を気をつけるようにする.

pip3 install pygame

コンソール(anaconda promptでの確認がよい)上で, import を確認する.
以下のメッセージが提示されていれば,インストールされていることが確認

>>> import pygame
pygame 1.9.6
Hello from the pygame community. https://www.pygame.org/contribute.html

pygame のサンプルはいろいろとあるらしい
以下をcommand prompt (anaconda)上で実行し,サンプルの実行を確認する.

python -m pygame.examples.aliens

あるいは

python -m pygame.examples.chimp

以下に様々なサンプルがあることを知る
PythonをインストールしてPygameを動かすまで - Qiita


上記のサイトは,pygameについて調べていたところ,以下より情報を得た.
qiita.com

kivyのインストール(conda コマンド)

kivyはconda-forgeからインストールを行った.

conda install -c conda-forge kivy

コンソール上で, import を確認する.
以下のメッセージが提示されていれば,インストールされていることが確認

>>> import kivy
[WARNING] [Config      ] Older configuration version detected (0 instead of 21)
[WARNING] [Config      ] Upgrading configuration in progress.
[INFO   ] [Logger      ] Record log in C:\Users\xxx\.kivy\logs\kivy_19-09-22_0.txt
[INFO   ] [Kivy        ] v1.11.1
[INFO   ] [Kivy        ] Installed at "C:\SysInstall\Anaconda3\lib\site-packages\kivy\__init__.py"
[INFO   ] [Python      ] v3.7.3 (default, Apr 24 2019, 15:29:51) [MSC v.1915 64 bit (AMD64)]
[INFO   ] [Python      ] Interpreter at "C:\SysInstall\Anaconda3\python.exe"
>>>

warning が気になったので,更新を行った
message には,

[WARNING] [Config ] Older configuration version detected (0 instead of 21)
[WARNING] [Config ] Upgrading configuration in progress.

つまり,upgradeが適応されていない状態だったので, conda update --all (または, conda update kivy)で最新版へ更新
コンソール上で import kivy を確認すると,以下となり, warning が解消された

[INFO ] [Logger ] Record log in C:\Users\xxxx\.kivy\logs\kivy_19-09-22_2.txt
[INFO ] [Kivy ] v1.11.1
[INFO ] [Kivy ] Installed at "C:\SysInstall\Anaconda3\lib\site-packages\kivy\__init__.py"
[INFO ] [Python ] v3.7.3 (default, Apr 24 2019, 15:29:51) [MSC v.1915 64 bit (AMD64)]
[INFO ] [Python ] Interpreter at "C:\SysInstall\Anaconda3\python.exe"

Kivyの確認

早速, コードを記述し,確認する.
ファイル名をtestkivy.pyとした

#-*- coding: utf-8 -*-

from kivy.app import App
from  kivy.uix.label import Label

class TestApp(App):
    def build(self):
        return Label(text='Hello, my first kivy World')

TestApp().run()

コンソール上で python testkivy.pyを実行
(当然だが,指定する仮想環境上に入ってから実行)
以下が提示される.

f:id:tomokop:20190922084511p:plain