我已经安装了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
在该特定环境中是否可以使用命令python
和ipython
访问两个python版本3.3.0,即不能通过在.bashrc
中设置别名?
编辑:
结果表明,如果选择3.3版本而不是3.3.0版本以及@ilmarinen的答案,则不会发生此问题
conda create -n "myenv" python=3.3 ipython
一切正常,并且python
和ipython
的结果都适用于python 3.3.5
版本。
答案 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正在使用相同的机制。