私は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
コマンドpython
とipython
の両方でアクセスできますか?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
になりました。
特定の環境にipythonもインストールする必要があります
conda create -n "myenv" python=3.3.0 ipython
Conda環境はPATH変数の前に追加されるため、実行可能な「ipython」を実行しようとすると、Linuxはアクティブ化された環境で「ipython」を見つけられません(そこに存在しないため)。それをインストールすると、最終的にそれを見つけることができます。
チャネル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
_
同様の問題がありました。そして、私は多くの有用な議論を見つけることができませんでした。
私の問題は、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
から削除)、エイリアスを削除して再初期化することで解決されました。
他のシェルも同じメカニズムを使用していると思います。