之间有什么区别
python -m pip install forecasting
和
pip install forecasting
在我的环境中,当第二种格式引发以下错误时,第一种起作用:
ModuleNotFoundError:没有名为“ pip._internal”的模块
答案 0 :(得分:1)
第一个问题的答案。
来自pip docs
pip是一个命令行程序。在安装pip时,会将pip命令添加到系统中,该命令可以从命令提示符处运行,如下所示:
$ pip <pip arguments>
如果您不能直接运行pip命令(可能是因为其安装位置不在操作系统的PATH上),则可以通过Python解释器运行pip:
$ python -m pip <pip arguments>
答案 1 :(得分:1)
答案 2 :(得分:1)
它们是程序包向命令行公开命令的两种不同方式。
pip
是console_script
entry-point。任何程序包都可以以这种方式定义全局可用的命令,然后PIP(程序包)使用它来定义pip
(命令)。
对于pip
,他们使用此方法执行的功能设置为pip._internal.main()
:
entry_points={
"console_scripts": [
"pip=pip._internal:main",
],
},
另一方面,python -m pip
正在使用switch for calling modules。如果您的模块包含一个__main__.py
文件,则该文件将由Python解释器简单地解释和执行。
对于python -m pip
,this file essentially contains
from pip._internal import main as _main
if __name__ == '__main__':
sys.exit(_main())
所以这两个命令试图做同样的事情。