如何使用特定的python版本创建conda环境?

AKG*_*AKG 4 python conda miniconda

我已经miniconda3安装了,并且由于我想使用python 3.3.0版本的环境,因此我通过

conda create -n "myenv" python=3.3.0
Run Code Online (Sandbox Code Playgroud)

但是,当我通过激活环境时

conda activate myenv
Run Code Online (Sandbox Code Playgroud)

python具有版本2.7.15和路径

/usr/bin/python
Run Code Online (Sandbox Code Playgroud)

和ipython具有python版本3.6.8和路径

/home/myname/.local/bin/ipython
Run Code Online (Sandbox Code Playgroud)

我可以访问正确的蟒蛇与python3它在

/home/myname/miniconda3/envs/mattention/bin/python3
Run Code Online (Sandbox Code Playgroud)

但是,ipython3再次具有python 3.6.8版本。

conda install python=3.3.0
Run Code Online (Sandbox Code Playgroud)

情况保持不变。

一种解决方案是通过以下方式打开IPython:

python3 -m IPython
Run Code Online (Sandbox Code Playgroud)

但是,虽然在这里工作正常,但python我收到了错误消息

/home/myname/miniconda3/envs/mattention/bin/python3: No module named IPython
Run Code Online (Sandbox Code Playgroud)

是否可以在该特定环境中同时使用命令pythonipythonpython 3.3.0版本进行访问,即不能通过在.bashrc?中设置别名来进行访问?

编辑:

原来,如果您选择版本3.3而不是3.3.0以及@ilmarinen的答案,则不会发生此问题。

conda create -n "myenv" python=3.3 ipython
Run Code Online (Sandbox Code Playgroud)

一切都正常,python并且ipython结果符合python版本3.3.5

bba*_*iee 29

要创建一个py33以 python 3.3.0 命名的环境,请使用通道 conda-forge 和包列表:

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
Run Code Online (Sandbox Code Playgroud)

或者你可以使用

conda env create -f environment.yml
Run Code Online (Sandbox Code Playgroud)

使用environment.yml文件而不是requirements.txt:

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
Run Code Online (Sandbox Code Playgroud)

要自动备份当前环境,请运行:

conda env export > environment.yml
Run Code Online (Sandbox Code Playgroud)

使用此命令删除环境:

conda env remove -n py33
Run Code Online (Sandbox Code Playgroud)

  • 为了使示例完整,请使用“conda env create -fenvironment.yml”创建上述环境 (2认同)
  • 为了使示例更加完整,您可以通过运行“conda env export >environment.yml”自动创建environment.yml (2认同)

ilm*_*nen 6

您还需要在给定的环境中安装ipython

conda create -n "myenv" python=3.3.0 ipython
Run Code Online (Sandbox Code Playgroud)

conda环境位于PATH变量的前面,因此,当您尝试运行可执行文件“ ipython”时,Linux不会在激活的环境中找到“ ipython”(因为它在那里不存在),但是它将继续搜索并最终在任何安装位置找到它。

  • 很好,尝试了一下,它可以工作了 - 现在,“ipython”调用所需的版本。现在只剩下我的问题的一部分,是否有办法用“python”而不是“python3”调用所需的版本。 (2认同)
  • 有理由必须这样做吗?至少感觉 conda 应该解决这个问题 (2认同)
  • conda 在很大程度上依赖于 Linux 来查找可执行文件,离开它会破坏很多东西。现在,如果我像在相当干净的 Linux 机器中那样创建一个环境,我只需运行命令“ipython”就可以使用 python 3.3 运行 ipython 控制台。您似乎在环境路径之前查找 /home/myname/.local/bin 中的路径。我不知道为什么会这样,但只要该路径优先于您激活的环境,您就会选择错误的 ipython 可执行文件。 (2认同)