【问题标题】:What's the difference between virtualenv and using pip install with --ignore-installed and --user options?virtualenv 和使用带有 --ignore-installed 和 --user 选项的 pip install 有什么区别?
【发布时间】:2019-04-30 03:49:31
【问题描述】:

我正在浏览 pip 的文档,并且还在查看 virtualenv。如果我们设置PYTHONUSERBASE 变量,并使用--ignore-installed--user 选项运行pip install,我们基本上是在告诉pip 下载本地文件夹中的包,而忽略全局站点包路径中存在的所有内容。据我了解,virtualenv 用于实现类似的目标。那我为什么要使用virtualenv?如果我们只在我们的机器上处理单个 python 安装,是否有任何额外的好处?

【问题讨论】:

    标签: python python-3.x pip dependencies virtualenv


    【解决方案1】:

    不同之处在于,一个用户可以拥有多个虚拟环境,每个环境都有不同版本的包及其依赖项。使用pip install --user,用户只能拥有一个包的一个版本。

    【讨论】:

    • 谢谢博士。这就说得通了。但是,如果我在运行pip install --user 之前更改pythonuserbase 变量,我可以获得相同的最终结果,但这会很乏味,因为您必须在运行项目之前创建多个目录,这是由virtualenv 隐式完成的。我明白了,阅读您的答案后,现在看起来很直观。
    【解决方案2】:

    virtualenv 会单独复制 python 安装和站点包。假设我们今天编写了一个代码并且它运行良好。但是一个月后,出于某种原因,我们更新了一个包(例如 numpy)。现在,由于更新,上个月工作的代码今天可能无法工作。因此,为了避免这种情况,我们使用 virtualenv。

    注意:我是一名业余计算机程序员,对技术知识了解不多。只是分享我所知道的.. :)

    【讨论】:

    • 感谢 Manideep 的回答。我了解 virtualenv 的使用,您指定的用例也可以通过 pip install --user 选项来完成。但是,正如另一个答案所说,virtualenv 允许我为单个用户拥有多个运行时环境,这是其他选项不容易实现的。我现在明白了。
    猜你喜欢
    • 2016-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-05
    相关资源
    最近更新 更多