如何在Docker容器中将python2别名为python3?

时间:2019-03-25 20:39:03

标签: python-3.x python-2.7 docker

我正在尝试将docker容器中的默认python设置为python3,并在dockerfile中设置了别名。当我打开.bashrc文件时,它们就会出现。据我所知,它应该可以工作,但是默认的python版本仍然是2.7。如果我运行哪个python,它将仍然指向usr / bin / python而不是python3。点子一样。谁能告诉我问题出在哪里?这是我用来别名的命令:

   RUN \
   echo 'alias python="/usr/bin/python3"' >> /root/.bashrc && \
   echo 'alias pip="/usr/bin/pip3"' >> /root/.bashrc

这看起来正确吗?我正在使用ubuntu 17.10

2 个答案:

答案 0 :(得分:1)

您尝试为python bin创建符号链接

RUN ls -s /usr/bin/python3 /usr/bin/python & \
    ls -s /usr/bin/pip3 /usr/bin/pip

另一种选择是使用update-alternatives进行更多访问this site

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3

另一种选择是在更新后尝试获取bashrc文件的源代码

RUN \
   echo 'alias python="/usr/bin/python3"' >> /root/.bashrc && \
   echo 'alias pip="/usr/bin/pip3"' >> /root/.bashrc && \
   source /root/.bashrc

我建议在Docker Hub上查看python图像的所有选项

提示:使用anacondaconda来管理python版本(conda site

答案 1 :(得分:0)

以上答案很好,除了应该是

RUN ln -s /usr/bin/python3 /usr/bin/python & \
    ln -s /usr/bin/pip3 /usr/bin/pip

我认为他们是通过写ls而不是实际上构成符号链接的ln来打字的。