首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用pip -user选项是否与创建虚拟服务器一样安全?

使用pip -user选项是否与创建虚拟服务器一样安全?
EN

Stack Overflow用户
提问于 2017-07-17 20:31:34
回答 2查看 7K关注 0票数 3

使用pip install --user在用户主目录中安装包是否与使用virtualenv提供相同级别的防系统破坏更改的保护?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-17 20:43:10

在使用pip install --user的主目录中安装软件包是否与使用virtualenv提供相同级别的保护,以防止系统崩溃的更改?

所谓“破坏系统的更改”,我想您指的是由操作系统的包管理器工具安装的包。使用--user选项pip,包将安装在用户的主目录中。而且,由于包管理器不应该依赖用户目录,而应该只使用安装在系统中指定位置的包,而不依赖于用户的垃圾,因此一个管理得当的系统不应该使用pip install --user中断。

但是,如果您与用户一起使用多个Python项目,那么始终使用virtualenv来防止项目之间的版本冲突是有意义的。

票数 3
EN

Stack Overflow用户

发布于 2017-07-17 20:51:30

使用virtualenv是可取的,因为有几个小的原因,也是一个很大的原因。

  • virtualenv有一个“重新定位”选项(注意:此功能已被标记为有问题,并且可能不会在所有情况下都起作用)。使用--如果您试图将项目重新定位到另一台机器,您需要重新安装所有的包。
  • 除非您更改PYTHONPATH,使站点包中的模块不被加载,并且重新安装用户目录中的每个模块,python将继续搜索安装在系统目录中的模块。如果你在考虑使用--用户,我想你要么没有安装系统软件包的权限,要么你担心将来会中断链接。与--用户不同,virtualenv跟踪所有模块(包括安装在虚拟环境中的全系统模块和模块),因此,我可以想象,如果您使用virtualenv,“破坏某个东西”(或者至少更容易识别问题所在)的可能性更小。

这些问题可能是讨厌的,但它们是可以克服的。--用户和virtualenv之间最大的区别是,virtualenv将允许您为创建的每个环境存储每个包的一个版本,从而消除了版本控制问题(也就是说,您构建一个项目来处理一个包的一个版本,然后使用一些新功能升级包以处理一个新项目,然后发现您的旧项目现在已经崩溃了)。这是一个相当大的问题,而且--用户在这方面没有任何帮助(除非您希望在您的机器上为您工作的每个项目创建一个新的用户帐户,我不建议这样做)。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45153178

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档