为什么 Python 中的“pip install”会引发 SyntaxError?
- 2024-11-19 08:38:00
- admin 原创
- 15
问题描述:
我正在尝试使用 pip 安装包。我尝试pip install
从 Python shell 运行,但出现SyntaxError
。为什么会出现此错误?如何使用 pip 安装包?
>>> pip install selenium
^
SyntaxError: invalid syntax
解决方案 1:
pip 是从命令行运行的,而不是从 Python 解释器运行的。它是一个安装模块的程序,因此您可以从 Python 使用它们。安装模块后,您可以打开 Python shell 并执行import selenium
。
Python shell 不是命令行,而是一个交互式解释器。你在其中输入 Python 代码,而不是命令。
解决方案 2:
使用命令行,而不是 Python shell(Windows 中的 DOS、PowerShell)。
C:Program FilesPython2.7Scripts> pip install XYZ
如果你使用最新的安装程序将 Python 安装到 PATH 中,则无需进入该文件夹即可运行 pip
Mac 或 Linux 中的终端
$ pip install XYZ
解决方案 3:
正如 @sinoroc 所建议的,通过 pip 安装包的正确方法是使用单独的进程,因为 pip 可能会导致关闭线程或可能需要重新启动解释器来加载新安装的包,所以这是使用 API 的正确方法:subprocess.check_call([sys.executable, '-m', 'pip', 'install', 'SomeProject'])
但由于 Python 允许访问内部 API 并且您知道您正在使用 API 做什么,所以您可能还是想使用内部 API,例如,如果您使用替代资源(如https://www.lfd.uci.edu/~gohlke/pythonlibs/)构建自己的 GUI 包管理器
以下解决方案已过时,请改为建议更新,而不是投票反对。请参阅https://github.com/pypa/pip/issues/7498以供参考。
更新:自 pip 版本 10.x 起,不再使用get_installed_distributions()
或main
方法,import pip
而是使用 import pip._internal as pip
。
更新 ca. v.18 get_installed_distributions()
已被删除。相反,您可以使用freeze
这样的生成器:
from pip._internal.operations.freeze import freeze
print([package for package in freeze()])
# eg output ['pip==19.0.3']
如果您想在 Python 解释器中使用 pip,请尝试以下操作:
import pip
package_names=['selenium', 'requests'] #packages to install
pip.main(['install'] + package_names + ['--upgrade'])
# --upgrade to install or update existing packages
如果需要更新每个已安装的软件包,请使用以下命令:
import pip
for i in pip.get_installed_distributions():
pip.main(['install', i.key, '--upgrade'])
如果要在任何安装失败时停止安装其他软件包,请一次pip.main([])
调用:
import pip
package_names = [i.key for i in pip.get_installed_distributions()]
pip.main(['install'] + package_names + ['--upgrade'])
注意-r
:当您使用/参数从文件列表中安装时,--requirement
不需要 open() 函数。
pip.main(['install', '-r', 'filename'])
警告:一些简单的参数--help
可能会导致 Python 解释器停止。
好奇:无论如何,pip.exe
您实际上都会使用 python 解释器和 pip 模块。如果您解压pip.exe
,pip3.exe
无论它是 python 2.x 还是 3.x,里面都是相同的单个文件__main__.py
:
# -*- coding: utf-8 -*-
import re
import sys
from pip import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script.pyw?|.exe)?$', '', sys.argv[0])
sys.exit(main())
解决方案 4:
要在 Python 3.x 中运行 pip,只需按照 Python 页面上的说明进行操作:安装 Python 模块。
python -m pip install SomePackage
或者(如果 python 2 和 python 3 在同一个系统上):
python3 -m pip install SomePackage
请注意,这是从命令行运行的,而不是从 python shell 运行的(原始问题中语法错误的原因)。
解决方案 5:
同样的问题也存在jupyter-notebook
。如果你pip install ...
在一个单元格中单独执行,它会执行,但如果开头有一行注释,它就不会起作用。
我认为当 Jupyter 在开头看到注释行时,它会将该单元格视为 Python 解释器并引发错误。
解决方案 6:
您需要在 cmd 中输入它,而不是在 IDLE 中。因为 IDLE 不是命令提示符,如果您想从 IDLE 安装某些东西,请输入此命令
>>>from pip.__main__ import _main as main
>>>main(#args splitted by space in list example:['install', 'requests'])
这就像pip <commands>
在终端中调用 pip 一样。命令将由您在此处执行的空格分隔。
- 2024年20款好用的项目管理软件推荐,项目管理提效的20个工具和技巧
- 2024年开源项目管理软件有哪些?推荐5款好用的项目管理工具
- 项目管理软件有哪些?推荐7款超好用的项目管理工具
- 项目管理软件哪个最好用?盘点推荐5款好用的项目管理工具
- 项目管理软件有哪些最好用?推荐6款好用的项目管理工具
- 项目管理软件有哪些,盘点推荐国内外超好用的7款项目管理工具
- 2024项目管理软件排行榜(10类常用的项目管理工具全推荐)
- 项目管理软件排行榜:2024年项目经理必备5款开源项目管理软件汇总
- 2024年常用的项目管理软件有哪些?推荐这10款国内外好用的项目管理工具
- 项目管理必备:盘点2024年13款好用的项目管理软件