Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“为什么?”;pip安装";在Python内部引发语法错误?_Python_Pip_Installation - Fatal编程技术网

“为什么?”;pip安装";在Python内部引发语法错误?

“为什么?”;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安装一个软件包。我试图从pythonshell运行
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.18
get\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'])