wslでのpython仮想環境作成
wslでのpython仮想環境作成
wslでのubuntuでは,最初からpythonがインストールされているが,プロジェクトごとにバージョンを切り替えたりする必要があるため,pythonのパッケージ管理を行うpyenvと仮想環境を作成するvenvをインストールしていく.
venv,pipインストール
以下を実行
$ sudo apt install python3-venv python3-pip
バージョン確認
# Python
$ python3 -V
# pip
$ pip3 -V
# venv
$ apt show python3-venv
仮想環境作成
作成するディレクトリで以下を実行.
$ python3 -m venv venv-sample
するとvenv-sample
というディレクトリができる.
仮想環境をonにするときは
$ surce venv-sample/bin/activate
仮想環境をoffにするときは
(venv-sample)$ deactivate
pyenvインストール
git からクローン
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
環境変数を設定.
.bashrc.zshrcなど設定ファイルに以下を追記.
# pyenv
export PYENV_ROOT="$HOME/.pyenv"
export PATH="PYENV_ROOT/bin:PATH"
if command -v pyenv 1>/dev/null 2>1; then
eval "$(pyenv init -)"
fi
シェルを再起動し,以下を実行すると,利用可能なpythonのバージョン一覧を確認できる.
$ pyenv install --list
Available versions:
2.1.3
2.2.3
...
anaconda-1.4.0
anaconda-1.5.0
...
次にここにあるように,pythonをインストールするためのものをインストールする.
sudo apt-get install -y build-essential libssl-dev zlib1g-dev libbz2-dev \
libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \
xz-utils tk-dev libffi-dev liblzma-dev python-openssl git
終了したら,他のバージョンがインストールできるようになる.
pyenv install 3.6.12
# proxy通す場合は(必要ないかも)
https_proxy=[proxy_address]:[port] pyenv install 3.6.12
以下で確認
# インストールされている一覧
$ pyenv versions
# シェルにおける実行環境の設定
$ pyenv shell <バージョン>
# デフォルトの実行環境の設定
4 pyenv global <バージョン>
他のバージョンのpythonをいれたら元々あったsystemのpythonが謎に消えたが,たぶん問題ないので気にしない.
バージョンを指定して仮想環境作成
インストールしたバージョンで仮想環境を作成する.
まずはバージョンを変える.
$ pyenv shell 3.6.12
続いて,仮想環境を作成する
$ python3 -m venv venv-sample2
すると,venv-sample2
というディレクトリができる.
そして仮想環境をonにする.
$ source venv-sample2/bin/activate
仮想環境内でpythonのバージョンを確認すると,変更したバージョンとなっていることがわかる.
# 仮想環境入る前
$ python3 -V
> Python 3.8.6
# 仮想環境入った後
(venv-sample2)$ python -V
> Python 3.6.12
作成した仮想環境内で,pipなどで必要なパッケージなどを管理していく.
仮想環境を消す
作成した仮想環境が必要なくなったら,ディレクトリごと消せばok.
$ rm -rf venv-sample
pipenv
pyenvとvenvが合わさったpipenvというものがあるらしいが,よくわからん.
参考文献
Author And Source
この問題について(wslでのpython仮想環境作成), 我々は、より多くの情報をここで見つけました https://qiita.com/mukusuke421/items/51e1684614cab0cb78c3著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .