【问题标题】:What is the difference between 'pip install <package>' and 'python -m pip install <package>'?“pip install <package>”和“python -m pip install <package>”有什么区别?
【发布时间】:2021-01-28 23:54:23
【问题描述】:

在什么情况下会使用一种方法而不是另一种方法?这两种方法都有缺点吗?

我已经看到了这两种方法,但我不知道两者之间的区别是什么,我似乎无法找到该问题的答案。行为有差异吗?还是一个只是另一个的进化版本?

例如,here 这两种方法都在所有答案中使用。

注意:似乎也有一个很相似的问题here,但是这个问题只涉及在使用python -m pip install &lt;package&gt;时提供-m的必要性,而不涉及两者之间的区别以上两种方法。

【问题讨论】:

标签: python pip


【解决方案1】:

pip install ... 调用必须在您的路径上的 pip 可执行文件。 python -m pip ... invokes 对应于这个 python 安装的 pip application (即 Python 将使用其正常的导入机制来解析 pip 包)。

通常这两种做法是一样的,但是想想alias pip=echo之后会发生什么; python -m pip ... 方法仍然有效。

例如,如果您在虚拟环境中,但您想将包安装到另一个 Python 安装中,则可以使用 python -m pip ... 方法:

(somevenv) $ pip install ...   # installs into 'somevenv'
(somevenv) $ /path/to/othervenv/bin/python -m pip install ...  # installs into 'othervenv'

最后,python -m pip ... 总是会使用 Python 的“正确”安装,假设您打算使用 python 指向的任何内容。

如果您想install a distribution from within a running script,那么根据pip docs,使用python -m pip 方法也是首选方式。

【讨论】:

    猜你喜欢
    • 2019-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-24
    • 2016-04-15
    相关资源
    最近更新 更多