ipython 与 ~/.local/bin/ipython

ipython 与 ~/.local/bin/ipython

我相信,自从我通过安装了 IPython Notebook 以来,pip --user我现在拥有 Python、IPython 和其他 Python 模块的两个实例:Ubuntu 系统自带的原始实例和 pip 安装的新本地实例。

$ which ipython
/usr/bin/ipython

$ cat /usr/bin/ipython
from IPython import start_ipython    
start_ipython()

调用 ipython 的两种方式(ipython~/.local/bin/ipython)是否等效?

答案1

不,IPythons 不是 Python 版本,而是 Python 的几个实用程序。主要是改进的命令 shell 和笔记本。但您使用的是常规 Python 安装。

您可以使用其自身包含的 python 版本来安装 Ipython,但这不是 pip 默认执行的操作。

如果您为 Pip 提供 -user 开关,它可以在本地安装软件包,如果您这样做了,那么您仍然只有一个 python 安装,但是针对不同的用户有不同的库。

最后,如果您使用 来调用它,~/.local/bin/ipython则可能会运行用户级版本的 ipython,而不是系统级版本(如果您同时安装了这两个版本)。它是否运行相同或不同的版本,则键入“ipython”取决于您的路径。

答案2

调用 ipython 的两种方式(ipython 和 ~/.local/bin/ipython )是否等效?

简短回答:不,它们不等同。现在让我们看看为什么:

如果您像您一样使用选项,Pip 可以将软件包安装在用户自己的主目录下--user。当您执行此操作时,它会将软件包安装到~/.local(请注意,此相对路径会扩展为类似/home/username/.local),但是您仍然只有一个全局 Python 解释器/usr/bin/python。这使得您以这种方式安装的不同库或模块只能在本地访问,这意味着它们不会在用户之间共享。

如果您使用相对或绝对路径调用任何程序,它将运行位于该路径末尾的可执行文件(如果存在)。在这种情况下,相对路径~/.local/bin/ipython指向 IPython 的本地实例。

当你通过键入其名称来调用可执行文件时,ipython例如PATH 环境变量用于确定要运行的内容。因此实际运行的内容将取决于其在 PATH 中的优先级。这可能与位于 的可执行文件相同,也可能不同~/.local/bin/ipython

使用which 命令检查如果仅键入命令名称,将启动哪个可执行文件:which ipython。它将为您提供该命令的路径。


此外,如果您已经在本地而不是系统范围内安装软件包,我建议您使用虚拟环境,它会让您的生活更轻松(大多数时候),尝试virtualenv一下venv

相关内容