我对安装外部python软件包的可能性感到困惑:
使用pip
将本地软件包安装到/home/chris/.local/lib/python3.4/site-packages
$ pip install --user packagename
用pip
将软件包全局安装到/usr/local/lib/python3.4/site-packages
(需要超级用户权限)$ pip install packagename
用zypper
将软件包全局安装到/usr/lib/python3.4/site-packages
(需要超级用户权限)$ zypper install packagename
我将OpenSuse与package-manager zypper
一起使用,并有权访问root用户。
我(想知道)对pip
的了解是:
-pip
仅下载最新版本。
-对于安装的软件包,将不检查是否有较新的版本。
-可以将自己的软件包安装在虚拟环境中。
-下载和安装所需的时间比zypper
多。
-可以本地或全局安装。
我的系统的软件包管理器:
-下载和安装速度更快。
-仅全局安装软件包。
我的问题是,什么时候以及为什么要安装:pip
(本地,全局)或使用zypper
?
我已经阅读了很多有关此问题的内容,但无法清楚地回答此问题...
最佳答案
/ usr / lib下的内容是系统软件包,被视为操作系统的一部分。 OS脚本和服务可能/可能依赖于这些组件。我建议您不要自己动手,也不要真正使用或依赖用户脚本来使用这些脚本,因为这会使您的应用操作系统乃至操作系统版本有所依赖。如果编写在系统级别运行的脚本(例如执行维护或管理任务),请使用这些脚本,尽管我会认真考虑使用...
/ usr / local / lib下的资料已本地安装,可供任何用户使用。系统脚本和此类脚本将不依赖于这些脚本(尽管我自己也不知道SuSE),但是其他用户的脚本也可能会这样做,因此在此处进行更改时必须牢记。这是共享资源。如果其他用户可能需要运行您的编写脚本,请以此为基础进行开发,以确保他们可以访问所有必需的依赖项。
存放在主目录中的所有内容都属于您,随您便。如果您只是为自己编写某些东西,尤其是在您可能需要将脚本可移植到其他设备/操作系统的情况下,请使用此功能。
可能还有其他有意义的选择,例如,如果您是开发应用程序软件的团队的一员,在这种情况下,应将团队的基本dev软件包安装在共享位置,而不是/ usr / local。
就使用zypper或pip而言,建议使用zypper来更新/ usr / lib,因为它是OS配置更新的特定工具。 / usr / local / lib可能也一样,因为它确实是“系统”的一部分,但这实际上取决于您,哪种方法可能最有意义,例如如果您需要将配置复制到另一台主机。对于homedir中的内容,这取决于您,但是如果您决定移至新OS上的新主机,pip仍然可用,因此可以更轻松地重新创建环境。