Python環境を整える
*課題
- 様々なモジュール管理ツールが混在している。
- 最初にどう環境設定したのか覚えていない。
- DISCが圧迫されている(これは別の所にも問題あり)
*環境
MacOS 10.14.5
Xcode(Command Line Tools)
Homebrew
バージョン
Python 3.7.1
pyenv 3.7.0
*Python管理ツールをすべてアンインストールして再構築しよう
1. Disc使用量の確認
du [オプション] ディレクトリ・ファイル
2. pyenv, anacond, pip uninstall
conda install anaconda-clean
anaconda-clean --yes
rm -rf ~/anaconda
anaconda上手く消えなかったからFinderから消しました
brew uninstall pyenv
3. それではinstallし直す!!
今回はrbenvとかは再インストールしてないので、ひとまずanyenvは使わない
brew install pyenv
MacOS Mojaveでpyenv python installするとZipImportErrorが出る話
を参考に
CFLAGS="-I$(xcrun --show-sdk-path)/usr/include" pyenv install 3.7.2
としてCFLAGSにmacOS SDK headersのパスを渡す
環境変数やinit などのPATH通して保存
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
source ~/.bash_profile
仮想環境構築 pipenv版
メモリは自分のPCを使用するけど、計算やライブラリの管理はプロジェクトごとに仮想環境をつくってできる
brew install pipenv
-> project root ディレクトリの.venv 以下のディレクトリに仮装環境が作成されるように有効化
''~/.local/share/virtualenvs'' に
格納されるそうだけど、PyCharm開発だと.venv以下をデフォルトで読み込んでくれるので便利らしい。(PyCharm使わないけどいれてみた)
echo 'export PIPENV_VENV_IN_PROJECT=1' >> ~/.bash_profile
source ~/.bash_profile
###pipenvについて
https://qiita.com/y-tsutsu/items/54c10e0b2c6b565c887a
・プロジェクトごとに仮装環境を構築できる
・pipenv環境下ではpipenvコマンドを使ってパッケージをインストール
つくった環境ごとにPipfileにパッケージが列挙される。また、Pipfile.lockにはバージョンやパッケージの依存関係にある別のパッケージの詳細が記載される
Python file実行
1. まず環境つくりたいディレクトリにいく
$ mkdir test
$ cd test
$ pipenv install --Python 3.7.1
この時点で
Pipfile Pipfile.lock
が階層にできている
2. パッケージの追加
$ pipenv install --(いろいろインストールしたいパッケージ)
で色々追加できる
開発時にしか使用したくないパッケージはオプション-d
をつけて
pipenv install -d (インストールしたいパッケージ)
* つまったこと
・$ pipenv install matplotlib は上手くいかない
versionまで指定すると、インストールできた
・pycocotoolsはCythonが入ってないとinstallできないなど、順番に気をつける必要ある
3. 実行する
pipenvは仮装環境なので、pipenvでインストールしたパッケージを利用したPythonスクリプトを実行するためには仮想環境に入る必要がある
pipenv shell
で環境に入ると、左側にプロジェクト名がカッコ書きで出てくるのが確認できる。
環境を抜けるときはexit
コマンドを打てると抜けられる
$ pipenv shell
(test)$ python foo.py
(test)$ exit
tkinker インストールできなくて困る
https://murabitoleg.com/mac-tkinter/
の通りに公式サイトから引っ張ってくると、対話型ではimport tkinterできたが。
python -m tkinter
打つと
tk.h version (8.6) doesn't match libtk.a version (8.5)
のエラー。。
https://qiita.com/undead/items/e92ff0038c1fa14689b5
を参考にしてpyenv uninstallするも解決しない。。
参考
https://qiita.com/anvinon/items/5d9c128ef8b65b866dfe
https://kandai.hatenadiary.jp/entry/2018/07/16/105940
pipencとGit Dockerをつかった話