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

时间:2019-06-22 08:07:06

标签: python conda miniconda

我已经安装了miniconda3,并且由于我希望使用python 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

我可以使用python3访问正确的python

/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中设置别名?

编辑:

结果表明,如果选择3.3版本而不是3.3.0版本以及@ilmarinen的答案,则不会发生此问题

conda create -n "myenv" python=3.3 ipython

一切正常,并且pythonipython的结果都适用于python 3.3.5版本。

3 个答案:

答案 0 :(得分:2)

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

conda create -n "myenv" python=3.3.0 ipython

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

答案 1 :(得分:0)

使用通道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

或者,您可以创建一个environment.yml 文件而不是requirements.txt文件:

name: py33
channels:
  - conda-forge
dependencies:
  - python=3.3.0
  - ipython

使用此命令删除环境:

conda env remove -n py33

答案 2 :(得分:0)

我有类似的问题。而且我找不到很多有用的讨论。

对我来说,问题是当我执行conda init zsh时,我有别名将python指向在外壳配置文件中硬编码的miniconda python。初始化过程会以某种方式复制别名并始终重新加载该别名,从而覆盖“正确”版本。

conda create -n py27 python=2.7(我的系统默认值为3.6)之后,该版本已正确安装在miniconda3/envs/py27/bin/python。但是which python指出,即使我删除了更新的Shell配置,激活的环境python也没有指向它。

最后,通过“反向” conda初始化(删除了.zshrc中生成的conda函数),删除了别名并重新初始化来解决了该问题。

我猜想其他shell正在使用相同的机制。