

Pythonの初心者で、現在は主に言語について学習中です。

Pythonの環境を構築するのに「anaconda4.1.1(Python 3.5.2)」を使用しました。  
Python3.6が出ているとのことで、この際環境について勉強しようと思っているのですが、理解ができません。

まず、次のように、Python3.6の環境を構築しました。

[code]

    c:\conda create -n py36 python=3.6 anaconda
    -
    # conda environments:
    #
    py36                     C:\Users\(uname)\AppData\Local\Continuum\Anaconda3\envs\py36
    root                  *  C:\Users\(uname)\AppData\Local\Continuum\Anaconda3
    
[/code]

質問です。

1.「activate py36」で、仮想環境を切り替えられるらしいのですが、できません。  
切り替え方法を教えてください。  
※メインシェルは「powershell」を使用しています。  
※シェルをコマンドプロンプトを使用した時には、切り替えられました。

2.コマンドプロンプトで切り替えることができましたが、  
「(py36)c:>」とプロンプトが変わりました。(py36)が表示されている間は、python3.6の  
仮想環境になることは推測できますが、デフォルトをPython3.6にすることは可能でしょうか？  
例えばrootのバージョンを3.6にアップデートにしてから、  
3.5.2を新しく構築するものなのでしょうか？

3.仮想環境を切り替えるでネットで調べていたのですが、「virtualenv」というものも  
あるらしいのですが、activeateコマンドとどう違うのでしょうか。


CC BY-SA 3.0
2017-04-17T07:21:32.610
34066
2018-05-12T03:56:06.420
2018-03-28T07:51:22.887
19110
11148
question
python python3 anaconda
python仮想環境の切り替え


## 1\. Powershell で activate する方法

Powershell で Anaconda の仮想環境を切り替えられないのは既知の問題です。[この
issue](https://github.com/conda/conda/issues/626) に情報が集約されています。

2018年3月現在解決されておらず、以下のワークアラウンドが知られています。

### 方法1

[pscondaenvs](https://anaconda.org/pscondaenvs/pscondaenvs) を使う。

[code]

    conda install -n root -c pscondaenvs pscondaenvs
    
[/code]

### 方法2

Powershell の中で `cmd` を起動し、`activate` してから Powershell に戻る。

## 2\. デフォルトの設定を変えるには

> (デフォルトをPython3.6にするには) rootのバージョンを3.6にアップデートにしてから、3.5.2を新しく構築するものなのでしょうか？

はい。仮想環境は一時的な環境変更のために使うものなので、デフォルトを 3.6
にしたいのであればデフォルトの環境においてアップデートすれば良いです。このときに今のデフォルト環境を失いたくないのであれば、仮想環境をコピーする
(clone する) ことが[できます](https://conda.io/docs/user-guide/tasks/manage-
environments.html#cloning-an-environment)。

Anaconda の仮想環境についての詳細は、[公式ドキュメント](https://conda.io/docs/user-
guide/tasks/manage-environments.html)をご参照下さい。

## 3\. Anaconda の「環境」と virtualenv の違い

大雑把な説明ですが、conda コマンドは virtualenv コマンドと pip コマンドを統合したものです。Anaconda
公式ドキュメントの[こちら](https://conda.io/docs/commands.html#conda-vs-pip-vs-virtualenv-
commands)に比較があるのですが、virtualenv 単体では仮想環境の中でパッケージをインストールすることができません (pip
を使います)。また、そもそも Anaconda Cloud のパッケージを使うには conda コマンドを使うことになります。

Python の仮想環境ツールは他に pyenv というのもあります。本家 Stack Overflow
に三者を比較する投稿がいくつかあるので、ご覧ください。

  * [What is the difference between pyenv, virtualenv, anaconda?](https://stackoverflow.com/q/38217545/5989200)
  * [Does Conda replace the need for virtualenv?](https://stackoverflow.com/q/34398676/5989200)
  * [What is the relationship between virtualenv and pyenv?](https://stackoverflow.com/q/29950300/5989200)


CC BY-SA 3.0
2018-03-28T08:25:25.087
42706
2018-03-28T08:25:25.087
19110
34066
answer