我对安装外部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与包管理器zypper
一起使用,并且可以访问用户root。
我(想到)了解pip
的原因是:
- pip
只需下载最新版本
- 对于已安装的包裹,如果有更新的版本,则不会被检查
- 自己的包可以安装在虚拟环境中
- 下载和安装的时间比zypper
多
- 可以进行本地或全球安装。
我系统的包管理器:
- 下载和安装速度更快
- 仅在全局安装软件包。
我的问题是我何时以及为什么要进行安装:pip
(本地,全球)或zypper
?
我已经阅读了很多关于这个问题但是无法清楚地回答这个问题......
答案 0 :(得分:0)
/ usr / lib下的东西是被视为操作系统一部分的系统包。操作系统脚本和服务很可能/可能依赖于这些组件。我建议不要自己触摸它们,或者真正使用或依赖它们来处理用户脚本,因为这会使您的应用操作系统甚至操作系统版本依赖。如果编写在系统级运行的脚本(例如执行维护或管理任务),请使用这些,尽管我会认真考虑使用这些脚本...
/ usr / local / lib下的东西在本地安装,供任何用户使用。系统脚本等不依赖于这些(虽然我不知道SuSE),但其他用户的脚本可能会这样做,因此在此处进行更改时需要牢记这一点。这是一个共享资源。如果您编写其他用户可能需要运行的脚本,请针对此进行开发,以确保他们可以访问所有必需的依赖项。
您的主目录中的东西都是您的,所以就像您一样。如果您正在为自己编写一些内容,尤其是您可能需要将脚本移植到其他框/操作系统中,请使用此选项。
可能还有其他有意义的选项,例如,如果您是开发应用程序软件的团队的一员,在这种情况下,将您的团队的基础开发包安装在共享位置,但可能不是/usr/local.
在使用zypper或pip方面,我建议使用zypper来更新/ usr / lib,因为它是操作系统配置更新的特定工具。对于/ usr / local / lib也可能也是如此,因为它确实是'系统'的一部分,但它真的取决于你以及哪种方法最有意义,例如如果你需要复制配置另一台主机。对于homedir中的内容,这取决于你,但如果你决定转移到新操作系统上的新主机,pip仍然可用,这样环境将更容易重新创建。