バージョンの確認
$ python -V Python 2.7.17 $ python3 -V Python 3.6.9
[CentOS7の場合]
# yum install python3
python3、libtirpc、python3-libs、python3-pip、python3-setuptools
※標準インストールで仮想環境が入っている。
venvで仮想環境を作成
仮想環境を導入 $ sudo apt-get install python3-venv
basic1という仮想環境の作成 $ python3 -m venv basic1 ディレクトリが作成されている
仮想環境の反映
$ source ./basic1/bin/activate (basic1) :~/python/basic$
仮想環境を抜ける
(basic1) :~/python/basic$ deactivate $
仮想環境の動作確認
サンプルソース test.py
import urllib.request, urllib.error import bs4 # www.aitake.netからHTMLコードを取得 html = urllib.request.urlopen("https://www.aitake.net/") # 取得したHTMLのDOMを解析 soup = bs4.BeautifulSoup(html, features='html.parser') # きれいにフォーマットして出力 print(soup.prettify())
(basic1) :~/python/basic$ Traceback (most recent call last): File “test.py”, line 2, in import bs4 ModuleNotFoundError: No module named ‘bs4’ <–エラー (basic1) :~/python/basic$ pip3 install bs4 <– basic1仮想環境だけに、モジュールをインストールする
(basic1) :~/python/basic$ python3 test.py {htmlソースが表示される}
仮想環境から抜けると、bs4モジュールがインストールされていない状態のままでエラーとなる
(basic1) :~/python/basic$ deactivate $ python3 test.py Traceback (most recent call last): File “test.py”, line 2, in <module> import bs4 ModuleNotFoundError: No module named ‘bs4’ <– エラー:インストールした仮想環境
venv仮想環境にインストールしたライブラリ一覧をみる
:~/python/basic$ source ./basic1/bin/activate (basic1) :~/python/basic$ pip3 freeze beautifulsoup4==4.9.2 bs4==0.0.1 pkg-resources==0.0.0 soupsieve==2.0.1
仮想環境の環境をコピーするには、
(basic1仮想環境で設定をバックアップ) :~/python/basic$ source ./basic2/bin/activate (basic1) :~/python/basic$ pip3 freeze > config.txt (basic1) :~/python/basic$ deactivate
(basic2に入り仮想環境をコピー) :~/python/basic$ python3 -m venv basic2 :~/python/basic$ source ./basic2/bin/activate (basic2) :~/python/basic$ pip3 install -r config.txt
(反映を確認する) (basic2) :~/python/basic$ pip3 freeze beautifulsoup4==4.9.2 bs4==0.0.1 pkg-resources==0.0.0 soupsieve==2.0.1