“为什么?”;pip安装";在Python内部引发语法错误?
我正在尝试使用pip安装一个软件包。我试图从pythonshell运行“为什么?”;pip安装";在Python内部引发语法错误?,python,pip,installation,Python,Pip,Installation,我正在尝试使用pip安装一个软件包。我试图从pythonshell运行pip安装,但是我得到了一个SyntaxError。为什么会出现这个错误?如何使用pip安装软件包 >>> pip install selenium ^ SyntaxError: invalid syntax pip是从命令行运行的,而不是Python解释器。它是一个安装模块的程序,因此您可以从Python中使用它们。一旦安装了模块,就可以打开Python shell并执行imp
pip安装
,但是我得到了一个SyntaxError
。为什么会出现这个错误?如何使用pip安装软件包
>>> pip install selenium
^
SyntaxError: invalid syntax
pip是从命令行运行的,而不是Python解释器。它是一个安装模块的程序,因此您可以从Python中使用它们。一旦安装了模块,就可以打开Python shell并执行
import selenium
pythonshell不是命令行,它是一个交互式解释器。您可以在其中键入Python代码,而不是命令。使用命令行,而不是Python shell(Windows中的DOS、PowerShell) 如果您使用最新的安装程序将Python安装到PATH中,则不需要位于该文件夹中即可运行pip Mac或Linux中的终端
$ pip install XYZ
要在Python3.x中运行pip,只需按照Python页面上的说明进行操作:
请注意,这是从命令行运行的,而不是从pythonshell运行的(原始问题中出现语法错误的原因).正如@sinoroc所建议的,通过pip安装包的正确方法是使用单独的进程,因为pip可能会导致关闭线程,或者可能需要重新启动解释器来加载新安装的包,所以这是使用API的正确方法:
子进程。检查调用([sys.executable'-m'、'pip'、'install'、'SomeProject'))
但是,由于Python允许访问内部API,并且您知道自己使用的API是什么,因此您可能还是希望使用内部API,例如,如果您正在使用其他资源构建自己的GUI包管理器,如
以下解决方案已过期,而不是对建议更新进行向下投票。请参阅以获取参考。
更新:自pip版本10.x以来,在
导入pip
下不再使用获取安装的发行版()
或main
方法
更新ca.v.18get\u installed\u distributions()
已被删除。相反,您可以使用生成器冻结
,如下所示:
来自pip.\u internal.operations.freeze导入冻结
打印([package for package in freeze()])
#eg输出['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,内部都是同一个文件\uuuuuu main\uuuuuuu.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())
尝试使用以下命令升级pip,然后重试
python -m pip install -U pip
您需要在cmd而不是IDLE中键入它。因为如果您想安装这种类型的IDLE,IDLE不是命令提示符
>>>from pip.__main__ import _main as main
>>>main(#args splitted by space in list example:['install', 'requests'])
这是在终端中调用类似pip的
pip
。这些命令将由您在那里执行的空格分隔。以编程方式,以下命令目前有效。我看到了10.0及所有版本的所有答案,但没有一个是我的正确路径。当然,在Kaggle内部,这种方法是有效的
from pip._internal import main as _main
package_names=['pandas'] #packages to install
_main(['install'] + package_names + ['--upgrade'])
最初我也面临同样的问题,我安装了python,当我运行
pip
命令时,它会抛出一个错误,如下图所示
确保在环境变量中添加了pip路径。对我来说,python和pip的安装路径是::Python:
C:\Users\fhhz\AppData\Local\Programs\Python\Python38\
pip:
C:\Users\fhhz\AppData\Local\Programs\Python\Python38\Scripts
这两条路径都添加到环境变量中的路径中 现在打开一个新的cmd窗口并键入pip,您应该会看到如下屏幕 现在键入
pip安装
。在这里,我正在安装软件包spyder,因此我的命令行语句将是pip install spyder
,下面是我的运行屏幕
我希望我们已经完成了 如果您是从命令行执行此操作 试一试- python-mpip安装selenium 或(适用于蟒蛇3及以上)
python3-mpipinstallselenium这个答案是针对命令行的。
使用
pip3安装selenium
。这将适用于python版本3。感谢您的澄清,但我仍然无法运行它。它到底在哪里?它给了我一个“pip未被识别”错误(因为我不是正确的dir)。它安装在\site软件包中,但我正在查找它,但我找不到任何pip。exe@Nacht-pip
将位于python安装的脚本目录中,因此您需要将其添加到路径中。将C:\Python32\scripts
添加到路径中。根据安装位置,根据需要更改路径。实际上,windows中的pip.exe与/scripts目录中的其他脚本一样是python脚本,但在exe中进行了包装,以便使用默认python解释器运行它。通过使用7-zip打开pip.exe,您可以看到main.py正在导入pip、sys和re模块。。。(在这里您将找到如何在python shell中运行它的答案)-->pip是一个常规python模块。别忘了windows不是第一个支持python的平台,linux是,python是操作系统的一部分。我知道我必须从命令行(而不是python命令行)完成这项工作。这是在将目录更改为python.exe位置之后,然后需要将文件类型放在pip3上。在我的例子中,我是在寻找HTTP工作的请求。不结盟运动
>>>from pip.__main__ import _main as main
>>>main(#args splitted by space in list example:['install', 'requests'])
from pip._internal import main as _main
package_names=['pandas'] #packages to install
_main(['install'] + package_names + ['--upgrade'])