在什么情况下人们会使用一种方法而不是另一种方法?这两种方法都有缺点吗?
我看过这两种方法,但我不知道两者之间有什么区别,而且我似乎找不到这个问题的答案。行为上有差异吗?或者其中一个只是另一个的进化版本?
例如,这里所有答案中都使用了两种方法。
注意:这里似乎还有一个非常相似的问题,但是这个问题只涉及-m使用时提供的必要性python -m pip install <package>,而不涉及上述两种方法之间的差异。
pip install ...调用pip必须位于您的路径上的可执行文件。python -m pip ... 调用与此 python 安装相对应的pip应用程序(即 Python 将使用其正常导入机制来解析pip包)。
通常这两种方法是相同的,但想想之后会发生什么alias pip=echo;这种python -m pip ...方法仍然有效。
例如,python -m pip ...如果您位于虚拟环境中,但想要将包安装到另一个 Python 安装中,则可以使用该方法:
(somevenv) $ pip install ... # installs into 'somevenv'
(somevenv) $ /path/to/othervenv/bin/python -m pip install ... # installs into 'othervenv'
Run Code Online (Sandbox Code Playgroud)
最后,python -m pip ...假设您打算使用指向的任何python内容,则始终会使用“正确”的 Python 安装。
如果您想从正在运行的脚本中安装发行版,python -m pip那么根据pip 文档,使用该方法也是首选方法。