Python環境構築ガイドAnaconda のインストール

Conda と venv

Anaconda のインストールWindows版のインストールMacOS版のインストールLinux版のインストールConda コマンドConda と PipConda と venv

Conda コマンド では、複数のConda環境を作成して、切り替えながら利用する方法を解説しました。

Anacondaではない、一般のPythonでも同じように複数の環境を作成して切り替えながら利用できるようになっており、標準モジュールのvenv などが利用されます。venv以外にも、venvの元となったサードパーティである virtualenv も使われることがあります。

一般的なWebのPython入門サイトや書籍などでは、Pythonの実行環境として venv を推奨しているものがほとんどです。しかし、そういった解説では、Anaconda環境ではなく、一般のPythonを利用を前提としています。

Anaconda環境でのvenv

venv は、Anaconda環境でも使えないわけではありません。しかし、venvpipコマンドでパッケージをインストールして利用する前提のツールですので、venv環境内では、condaでインストールしたパッケージは利用できなくなってしまいます。

たとえば、conda環境で requestsパッケージをインストールしてみましょう。

まず、conda環境をアクティベートし、requests をインストールします。

$ conda activate py37
(py37) $ conda install requests
Collecting package metadata (current_repodata.json): done
Solving environment: done

...
Proceed ([y]/n)? y

Preparing transaction: done
Verifying transaction: done
Executing transaction: done

この状態なら、正常に requestsパッケージを利用できます。

(py37) $ python
Python 3.7.7 (default, May  6 2020, 04:59:01)
[Clang 4.0.1 (tags/RELEASE_401/final)] :: Anaconda, Inc. on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import requests

しかし、venv による仮想環境を有効にすると、使えなくなってしまいます。

(py37) $ python3 -m venv .vnev
(py37) $ . ./.venv/bin/activate
(.venv) (py37) $ python3
Python 3.7.7 (default, May  6 2020, 04:59:01)
[Clang 4.0.1 (tags/RELEASE_401/final)] :: Anaconda, Inc. on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import requests
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'requests'

venv環境では、condaでインストールしたパッケージは利用できません。pip でインストールすれば、使えるようになります。

(.venv) (py37) $ pip install requests
(.venv) (py37) $ python3
Python 3.7.7 (default, May  6 2020, 04:59:01)
[Clang 4.0.1 (tags/RELEASE_401/final)] :: Anaconda, Inc. on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import requests

Anaconda環境では、venvは不要

condavenv は、どちらも実行環境の管理という良く似た機能を提供しています。しかし、venv はAnaconda環境用には作られていないので、Anacondaの conda などが使えなくなってしまいます。これではAnacondaを使う意味がありませんので、venv は使わず、conda を利用して実行環境を整えるようにしましょう。



【Copyright © 2001-2020 python.jp】 【Privacy Policy】 python_japan