pythonの仮想環境
仮想環境の必要性
作成するアプリごとにインストールしたいパッケージが違うことがあります。
また、クラスが多くなるにつれてローカル環境のPCのものを使うとどれが使用しているパッケージかわからなくなることがあります。
そのため、このアプリにはこれをいれたいというものだけを仮想環境として作ったpythonの環境に入れていきましょう。
virtualenvのインストール
私はWindowsでUbuntuアプリを使っています。
なので、コマンドはdebian系でaptを使って操作していきます。
macを使っていたらbrewだったり、CentOSの場合はyumだったりパッケージマネージャによってコマンドが違うので適切にコマンド変えてください。
パッケージマネージャ別コマンド
https://hydrocul.github.io/wiki/others/linux-pkg-manager.html
パッケージマネージャについての解説がわかりやすかったサイト
https://eng-entrance.com/category/linux/linux-package
パッケージマネージャとは、簡単に使いたいものを使えるようにするために依存関係があるものをとってきたりしてくれる便利な管理システムのようです。
pythonならpip,Node.jsならnpmなどOSだけじゃなくていろいろなところでパッケージマネージャは使われているようです。
というわけでpython3の仮想環境を作るためのパッケージをインストールします。
pip3 install virtualenv
pip3 が入っていない場合はsudo apt install python3-pip
とかでいけると思います。
そしたら、好きなところにフォルダを作ります。
mkdir python-test
そのフォルダに移動します。
cd python-test
仮想環境を作ります。
virtualenv venv
venvじゃなくても好き名前でOKです。
その名前のフォルダができます。
python2になってしまう場合には下記でpython3にできました。
virtualenv -p python3 venv
そしたら仮想環境を有効にします。
source {作ったフォルダ名}/bin/activate
仮想環境が有効になると(フォルダ名)
が下記のように名前の前に表示されるようになります。
(venv)hoge@ubuntu:~/python-test
このvenvを有効にしている間にpip3 install {パッケージ}
としたものは、この仮想環境にインストールされます。
仮想環境から出たい場合にはdeactivate
とすると仮想環境が無効になります。
仮想環境の注意
初心者でよくわからずvirtualenvを使っていると、仮想環境にいない状況でpythonを起動してインポートしたはずのパッケージが入っていない!となることがあります。
また、仮想環境じゃなくてもpython2とpython3でインストールしたパッケージが違う場合があります。
インポートしたはずのパッケージが入っていない場合、下記を確認してみてください。
-
python2とpython3を交互に動かしていないか
- python2とpython3が存在する場合pythonコマンドを打つとpython2,python3コマンドを打つとpython3が起動されます。
-
which python
でpython2がどこに存在するか、which python3
でpython3がどこに存在するかを確認できます。 - python2もpython3も存在する場合、
pip install
でいれるとpython2にインストールされます。pip3 install
でインストールしなおしましょう。 - 現在起動しているのが、python2なのかpython3なのか確認してみてください。
-
pip freeze
でインストールされているライブラリー一覧を確認できます。python3の場合はpip3 freeze
で確認できます。
-
仮想環境が動作しているか
-
virtualenv
でpythonの環境を作った場合、source {作成した仮想環境フォルダ}/bin/activate
というように仮想環境を有効にしないと仮想環境に入れたパッケージは使えません。有効にしていない状態で起動したpythonはローカル環境で動く普通のpythonです。そっちにインポートしたライブラリしか動きません。
-
というわけで、初期によくわからなかった仮想環境についての構築手順についてまとめました。
参考になれば幸いです。