Python:環境構築

環境構築とは
必要に応じてモジュールをインストール、アンインストール、バージョンの変更を行う。 また、これにあわせてpython自身のアップグレード、ダウングレードを行うこともある。 それぞれのモジュールは互いに他のモジュールやpython、そのバージョンに依存していることがあり、特にチームで開発を行うときにばらばらな環境で開発を行っていると、同じコードであっても同じように動作しないことが起こりうる。 一方で、一人が様々な開発に携わることもあり、その都度モジュールをインストール、アンインストールするのは非効率である。
そこで、一つのパソコンの中にいくつかの仮想環境を作り、つどそれを切り替えて作業に当たることが効率的である。 この作業に使用する仮想環境を用意することを環境構築という。
仮想環境の有効化
①pythonに標準で入っているvenvを使う ②Anacondaを使う
について説明する
①pythonに標準で入っているvenvを使う →コマンドプロンプトで学習用のフォルダを作りたい場所に作る(ここではDesktopにfuckというフォルダを作る→envという仮想環境を作る)
C:\Users\hogehogefugafua>cd Desktop
C:\Users\hogehogefugafua\Desktop>mkdir fuck
C:\Users\hogehogefugafua\Desktop>cd fuck
C:\Users\hogehogefugafua\Desktop\fuck>
C:\Users\hogehogefugafua\Desktop\fuck>python -m venv env
ここまでで仮想環境が作成される。以下で環境の有効化を行う
C:\Users\hogehogefugafua\Desktop\fuck>env\Scripts\activate.bat
(env) hogehogehoge...
先頭に(環境名)が表示されていれば成功
②Anacondaを使う(anaconda pronpt) →Anacondaをインストールして、anaconda pronptから行う。(ここではshitという仮想環境を作成する)
(base) C:\Users\hogehogefugafua>conda create -n shit python=(指定があればバージョンを指定する)
のコマンドで環境を作成、
(base) C:\Users\hogehogefugafua>activate shit
で、環境を有効化。
②Anacondaを使う(anacondaNavitor) →anacondaNavitorから作成する。
anacondanavigatorを起動、environments→createで作成する
![image][スクリーンショット 2022-06-14 144923.png]
なお各開発ツールによって環境選択する場所があるので、そこで使用したい環境を選択する。 ※jupyter labでは環境を選択するのにもう一工夫必要で、 pip install ipykernel python -m ipykernel install --user --name=環境名 のコマンドを実行する必要がある。(ほかにもやり方はいろいろあるがこれが一番ラク@6月時点。もっといい方法がないか研究中)
モジュールのインストール
①pipを使ってインストール ②condaを使ってインストール ③AnacondaNavigatorを使ってインストール
について説明する
①pipを使ってインストール →pipはPythonのモジュールを管理するためのツール。pythonをインストールすると標準で(python3.3以降)入っている →PyPIという場所にオープンソースで公開されているモジュールをインストールしてくる →種類が豊富
インストールしたい仮想環境を有効化した状態で、
pip install fuck
pip install fuck==バージョン名(これでバージョンを指定できる)
pip list #インストールしてあるモジュール一覧を確認できる
コマンドでインストールすることができる。
②condaを使ってインストール →conda installを入力することで、anaconda で動作の確認をしている(anaconda公式)モジュールをインストールしてくる →conda forgeを入力することで、git-hubにあるconda-forgeというコミュニティからインストールしてくる。いちおう問題なく動作する、はず →いちおうpipコマンドでもインストールできる。 が、動作の保証はなく環境が壊れることもあるので 、どうしてもpipにしかモジュールが存在しない場合のみ使用する
上から順に動作が安定しているので、順にインストールを試す。
インストールしたい環境を有効化した状態で、以下のコマンドを実行する
conda list # インストール済みのパッケージの中に、該当のパッケージがないことを確認する
conda search [パッケージ名] # 公式リポジトリ内に存在するかどうか確認
conda install [パッケージ名] # 公式リポジトリにあったらそこからインストール
conda search -c conda-forge [パッケージ名] # 公式リポジトリになかったら conda-forge 内を検索
conda install -c conda-forge [パッケージ名] # conda-forgeに存在したらそこからインストール
③AnacondaNavigatorを使ってインストール 以下スクショを参考
バージョンを指定してインストール ![image][スクリーンショット 2022-06-14 152557.png]
検索をかけて(②)、選択し(③)、インストール(④) ![image][スクリーンショット 2022-06-14 152920.png]
環境の共有
pipとanaconda環境によって共有方法が若干違う。
anacondaの場合
conda env export > fugafugafuga.yml #自分のanaconda環境を記述したファイルを吐き出し,メンバーと共有。
#受け取った yml ファイルを使って環境を再構築するには下記のコマンドを実行。
conda env create -n env_name_hogehoge -f fugafugafuga.yml
#yml ファイル内に環境名の指定がある場合、env_name_hogehoge は不要。
conda env create -f fugafugafuga.yml
pipの場合(実際に試していないのでリンク参照。たぶんそんな難しくない) 環境の共有にはrequirements.txtを利用しましょう。 requirements.txtについて
よく使うモジュールや注意点
- Numpy(数値計算)・・・特になし。anacondaにもともと入っている
- Pandas(データ処理)・・・特になし
- scikit-learn(機械学習)・・・特になし
- matplotlib(グラフ描画)・・・特になし。Pycharmで描画させようとするとそのままでは使えない。
- prophet(周期性予測)・・・condaにはない。conda + pip でインストールしたら使用できた。
- tensorflow(機械学習)・・・GPU使うやつとそうじゃないのがある。ややこしいので調査中
- edward(確率計算)・・・tensorflowに依存し、新しいtensorflowとは一緒に動かない。tensorflow1.7.0では動作した。tensorflow1.7.0は新しいpythonでは使えない。python3.6.5で動作した。
依存関係のチェックに使える。工事中。。。 This is pipdeptree inline link. This is pipshow inline link.
コマンド一覧
工事中、、、