#author("2021-10-18T13:38:03+00:00","","")
#author("2021-10-18T15:36:32+00:00","","")
[[技術メモ]]

#contents

*1. ~.py起動時とJupyter(python対話モード)起動時の相違 [#abaf8955]
** カレントディレクトリ参照の表記方法 [#o9b5f50e]
通常起動(dirに'C:\~'の文字列?で保存される')
 os.path.dirname(__file__)
対話モードではこれが使えないらしい
 from pathlib import Pathを付けて 
 os.path.dirname(os.path.abspath(sys.argv[0]))
相対パスならrelpathになる

***想定ユーザが複数人の場合は↑の書き方 [#kdaf1247]
1人のシミュレーションとかなら直接ディレクトリ書いた方が早い?
***JupiterだとJupiterが入ってるディレクトリ参照されるっぽい [#z526ef14]
→実行の度にカレントディレクトリが移動していたので対話モードでは直接示した方が良さそう
~~

*2. 関数定義のdef内でデータフレームを表示しようとしても呼び出しの際に出てこない [#m9dcb80a]
**対処法2つ [#z1c0c93f]
***関数にしないで普通の処理で書き連ねる [#j322c136]
***関数内ににデータフレームを表示させる関数を作る(まだ調べていない) [#hd2d8411]
~~

*3. データフレームの要素参照ilocの表記 [#j640019b] [#w8412be8]
**df.iloc[][]とすると挙動がおかしくなる [#h0ceb153]
iloc[1][1]で[1][2]の要素が参照されたり、for文でKeyError:0([0][0]などがない)が出たりする(Jupyterではfor文は正常?)~
→iloc[行,列]にしていれば問題なし
~
**df.iloc[0,1:N]は0行目の1からN-1列の要素まで取ってくる [#q8c17dfa]
list index out of range系のエラーが出るときにたいていこのミスしてる
~~

*4. R言語環境をjupyterで実装 [#gd51845d]
**(1)R言語専用の仮想環境作成 [#w33be642]
バージョンを確認して,新環境にpythonインストール~
(Rlangは仮想環境名なので好きな名前でOK)
 python -V
 conda create -n Rlang python=3.6 -y
 anaconda prompt上でbaseから作成した仮想環境に移動
 conda activate Rlang

新仮想環境上にjupyter導入
 pip install jupyter environment_kernels

参照:~
https://nxdataka.netlify.app/rjup/


**(2)jupyter内用のR環境(Rカーネル)インストール [#ve4eef80]

従来なら r channelからパッケージがインストールされていたが,停止したため conda-forge channelから導入(参考: https://qiita.com/wasser/items/de6bd837969c4c3a3aa9 )
 conda install r-irkernel -c conda-forge
 conda install r-essentials -c conda-forge


**(3)Rを入れた仮想環境でrを入力(pythonと打つように) [#g3b38477]
たぶん文字化けがひどいので,きれいな英語に直す(日本語は分からない)
-anacondaに入っているR.exeのディレクトリをコピー~
--windows画面左下の検索窓でR.exeを入れると,R.exeの「ファイルの場所を開く」が出てくるのでクリック(bin直下が出るが,さらに下のx64内のR.exeのをコピー)
-コマンドプロントを開いて,最初に設定されているディレクトリにバッチファイルを作る
--テキストエディタに↓を貼り付けた後,名前を付けて保存(r.batにして「すべてのファイル」選択)
 chcp 437
 C:\Users\~~~\anaconda3\pkgs\r-base-4.1.1-hddad469_1\lib\R\bin\x64\R.exe
 ↑さっきコピーしたディレクトリ
-コマンドプロンプトでrを打つと直っているはず(cd移動せずに開いて初めのディレクトリで実行する)

**%%(3)jupyterに仮想環境パス追加%% [#md6a7e1c]
→Rterm.exeから「~~~.dllが見つからない」とシステムエラーが表示され,base本体のJupyter環境に影響が及ぶため,解決するまで非推奨~
~

仮想環境パスが追加されているかの確認
 (base) C:\Users\User_name>conda config --show envs_dirs
 envs_dirs:
  - C:\Users\User_name\anaconda3\envs
  - C:\Users\User_name\.conda\envs
  - C:\Users\User_name\AppData\Local\conda\conda\envs

baseに戻ってJupyter設定用ファイルを作成&編集
 conda deactivate(または conda activate base で元に戻る)
 (base) C:\Users\User_name>jupyter notebook --generate-config
 Writing default config to: C:\Users\User_name\.jupyter\jupyter_notebook_config.py

保存されたディレクトリ先にあるjupyter_notebook_config.py内を編集
 #c.NotebookApp.kernel_spec_manager_class = 'jupyter_client.kernelspec.KernelSpecManager'

この1行が書かれているところを探し,この下に非コメントアウトで2行追加 
 c.NotebookApp.kernel_spec_manager_class='environment_kernels.EnvironmentKernelSpecManager'
 c.EnvironmentKernelSpecManager.conda_env_dirs=['C:/Users/User_name/anaconda3/envs']

参照:~
https://www.servernote.net/article.cgi?id=anaconda-jupyter-notebook-on-myenv

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS