我在Linux 16.04上工作,它预装了Python 2和Python 3。我曾经使用这个预安装的核心Python发行版已经有一段时间了,并且使用pip为发行版添加了一些软件包。最近我一直计划安装Anaconda python发行版,同时不会干扰我的核心python发行版,但我不确定这两个发行版如何在同一个Linux系统上协同工作
如果我的核心和Anaconda发行版中都安装了一个软件包,会导致任何类型的冲突吗?
如果我只是终端上的python3会运行什么?核心发行版的蟒蛇还是Anaconda发行版?
我可以同时运行两个Python实例吗?
答案 0 :(得分:2)
不,系统Python目录和Anaconda目录中安装的软件包是分开的。如果您使用--user
选项安装软件包,则可能会发生冲突,这会将软件包安装到Ubuntu上的~/.local
目录中。但是,如果您尝试使用相同版本的Python(3.4或3.6或...),这只会是一个问题。
运行哪种Python取决于您为PATH
环境变量设置的内容。您可以通过键入echo $PATH
来检查终端中此变量的值。例如,如果您在终端中键入python3
,则shell将在python3
中运行名为PATH
的第一个可执行文件。如果您的路径看起来像/home/user/anaconda3/bin:/usr/local/bin:/usr/bin
,那么首先会找到Anaconda Python。
您可以使用该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或者......在这些终端标签中表现不同)