web-dev-qa-db-ja.com

特定のpythonバージョンでconda環境を作成する方法は?

私はminiconda3をインストールしており、python version 3.3.0の環境を作りたいので、

conda create -n "myenv" python=3.3.0

しかし、私が環境をアクティブ化すると

conda activate myenv

pythonにはバージョン2.7.15とパスがあります

/usr/bin/python

そしてipythonはpythonバージョン3.6.8とパスを持っています

/home/myname/.local/bin/ipython

私は正しいpythonでpython3にアクセスできます

/home/myname/miniconda3/envs/mattention/bin/python3

ただし、ipython3にはpythonバージョン3.6.8が再び含まれています。

conda install python=3.3.0

状況は変わらなかった。

解決策は、IPythonを開くことです

python3 -m IPython

ただし、これはpythonでは問題なく機能しますが、ここではエラーメッセージが表示されます

/home/myname/miniconda3/envs/mattention/bin/python3: No module named IPython

コマンドpythonipythonの両方でアクセスできますか?pythonバージョン3.3.0その特定の環境で、つまり、.bashrc

編集:

@ilmarinenの回答とともに3.3.0ではなくバージョン3.3を選択した場合、この問題は発生しないことが判明

conda create -n "myenv" python=3.3 ipython

すべてが正常に動作し、pythonおよびipython結果がバージョンpython 3.3.5になりました。

10
AKG

特定の環境にipythonもインストールする必要があります

conda create -n "myenv" python=3.3.0 ipython

Conda環境はPATH変数の前に追加されるため、実行可能な「ipython」を実行しようとすると、Linuxはアクティブ化された環境で「ipython」を見つけられません(そこに存在しないため)。それをインストールすると、最終的にそれを見つけることができます。

10
ilmarinen

チャネルconda-forgeとパッケージのリストを使用して、python 3.3.0で_py33_という名前の環境を作成するには:

_conda create -y --name py33 python==3.3.0
conda install -f -y -q --name py33 -c conda-forge --file requirements.txt
conda activate py33
...
conda deactivate
_

あるいは、requirements.txtの代わりに environment.yml ファイルを作成できます。

_name: py33
channels:
  - conda-forge
dependencies:
  - python=3.3.0
  - ipython
_

このコマンドを使用して、環境を削除します。

_conda env remove -n py33
_
1
bbaassssiiee

同様の問題がありました。そして、私は多くの有用な議論を見つけることができませんでした。

私の問題は、conda init zshを実行すると、シェル構成ファイルにハードコードされたminiconda pythonを指すエイリアスpythonがあったことです。どういうわけか、initプロセスはエイリアスをコピーし、常にそれを再ロードするため、「正しい」バージョンが上書きされます。

conda create -n py27 python=2.7(システムのデフォルトは3.6)の後、バージョンはminiconda3/envs/py27/bin/pythonに正しくインストールされました。しかし、アクティブ化された環境pythonは、which pythonで示されているように、更新されたシェル構成を削除しても、それを指していませんでした。

最終的には、 'reverse' conda init(生成されたconda関数を.zshrcから削除)、エイリアスを削除して再初期化することで解決されました。

他のシェルも同じメカニズムを使用していると思います。

0
SamKChang