【问题标题】:Multiple Python Distribution on Linux systemLinux 系统上的多个 Python 发行版
【发布时间】:2017-09-29 21:03:42
【问题描述】:

我在 Linux 16.04 上工作,该版本预装了 Python 2 和 Python 3。我曾经使用这个预安装的核心 Python 发行版已经有一段时间了,并使用 pip 在发行版中添加了一些包。最近我一直计划在不影响我的核心 python 发行版的情况下安装 Anaconda python 发行版,但我不确定这两个发行版如何在同一个 Linux 系统上协同工作

  1. 如果在我的核心和 Anaconda 发行版中都安装了一个包,这会导致任何类型的冲突吗?

  2. 如果我只是在终端上运行 python3 会运行什么?核心发行版的python还是Anaconda发行版?

  3. 我可以同时运行两个 Python 实例吗?

【问题讨论】:

  • 我建议查看pyenv 来管理基本系统之外的python 版本pythonpython3
  • @TravisClarke Anaconda 可以轻松管理不同的 Python 版本,当 OP 想要使用的软件也能完成该功能时,IMO 无需建议完全不同的软件。
  • @darthbith - 我明白你的意思。尽管如此,我不认为建议使用 python 版本管理器甚至虚拟环境作为替代方案是有害的信息。当然,除非我试图将其表述为答案。我的目的只是为了通知 OP 和未来的访问者,一个极简主义的选择,用于处理多个 Python 版本与名义上的冲突。
  • @TravisClarke 你的评论对我来说就像“哦,你使用 Windows?你真的应该使用 Linux”类型的 cmets :-) 无论如何,正如你所说,了解替代方案很高兴,特别是对于该网站的未来访问者

标签: python linux anaconda


【解决方案1】:
  1. 不,安装在系统 Python 目录和 Anaconda 目录中的包是分开的。如果您使用 pip 的 --user 选项安装软件包,可能会发生冲突,该选项将软件包安装到 Ubuntu 上的 ~/.local 目录中。但是,只有在您尝试使用相同版本的 Python(3.4 或 3.6 或...)时,这才会成为问题。

  2. 将运行哪个 Python 取决于您为 PATH 环境变量设置的内容。您可以通过键入echo $PATH 在终端中检查此变量的值。例如,如果您在终端中键入python3,shell 将运行PATH 中名为python3 的第一个可执行文件。如果你的路径看起来像/home/user/anaconda3/bin:/usr/local/bin:/usr/bin,那么首先会找到 Anaconda Python。

  3. 您可以通过使用该 Python 可执行文件的完整路径来选择要在给定时间运行的 Python,例如,/usr/bin/python3/usr/bin/python2/home/user/anaconda3/bin/python/home/user/anaconda3/envs/py27/bin/python。一般来说,这样做是没有问题的,也不会有冲突。您可能遇到的唯一问题是,如果您想同时使用两个版本的 Python,则必须安装 2 个要使用的软件包副本(一个用于系统 Python,一个用于 Anaconda)。

    一个。来自@sascha 的补充:

    在使用 anaconda 的环境时,您通常会使用 activate 选择一个环境(例如,终端选项卡 1:source activate py2,终端选项卡 2:source activate py3;然后调用 python 或 pip 或 ...在这些终端标签中有所不同)

【讨论】:

    猜你喜欢
    • 2016-07-27
    • 2023-03-08
    • 1970-01-01
    • 2011-04-04
    • 1970-01-01
    • 2011-10-10
    • 2017-04-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多