当前位置: 首页 > 知识库问答 >
问题:

警告:pip正在被一个旧的脚本包装调用

鄢松
2023-03-14

警告:旧脚本包装程序正在调用pip。这将在未来版本的pip中失败。请看https://github.com/pypa/pip/issues/5599寻求解决潜在问题的建议。为了避免这个问题,您可以使用“-m pip”调用Python,而不是直接运行pip。

当我在终端上直接输入< code>pip list时,我得到了上面的警告。到底是什么意思?

我应该始终将其用作python3-m pip list吗?如果我以这种方式使用它,则会出现相同的输出(包列表)而没有任何警告。

p、 我在乌班图18.10

共有3个答案

朱阳晖
2023-03-14

让我先说一下,我对python和linux总体上还很生疏,所以我可能偏离了我的指导,但是我离题了...

当使用< code>pip命令时,您可能希望检查正在调用的< code>pip模块的位置。对我来说,我发现当我更新和修改< code>pip命令时,它会更新我的< code>~/上的< code>pip文件。local/bin目录,但是当我运行它时,它将默认为位于< code>/usr/local/bin目录中的< code>pip命令。

运行命令

    pip install --upgrade pip

对我来说,这个命令返回了:

默认为用户安装,因为正常的站点包不可写 要求已是最新的: pip in ./.local/lib/python3.6/站点包 (20.1.1)

记下文件位置和版本(粗体)。

通过分别运行这 2 个命令来检查路径变量和默认执行的默认 pip

    echo $PATH

    which pip

上帝愿意,它们将是一致的,否则你将不得不改变你是路径变量目录,以确保你想要的pip模块的目录是第一个,或者你必须从你不想使用的控制器中删除pip文件(即,当你运行哪个pip时出现的目录,如果它与你更新pip时列出的目录不同)

对我来说,删除< code>usr/local/bin中的pip文件非常有效。还要检查您想要使用的pip文件是否在其脚本顶部引用了正确的python版本

#!/usr/bin/python3

# -*- coding: utf-8 -*-
import re
import sys

from pip._internal.cli.main import main

if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
    sys.exit(main())

另一个文件最初引用了 usr/bin/python (Python 2.7),而不是我最初想要的 usr/bin/python3 (python 3.6.9)。

就像我之前说的,我刚刚开始使用linux和python,所以要谨慎对待它。但是,在采取这些步骤后,我不再收到此pip警告。让我知道这是否有帮助。

公孙俭
2023-03-14

当我从bash切换到zshshell时,我也遇到了同样的问题。

解决方案很简单,但我一开始没有注意到。

安装pip后,我看到了这个警告

pip 正在由旧的脚本包装器调用

首先我尝试了这个解决方案

python3.8-m pip安装--升级--强制重新安装pip

但后来我遇到了这个问题:

然后我搜索了如何添加< code>PYTHONPATH。我打开了我的<代码>。zshrc并说这些行被注释了

#如果您来自bash,您可能需要更改$PATH。

我取消了后面那句话的注释,我的痛苦消失了。

当我跑的时候,

python3.8-m pip安装--升级--强制重新安装pip

然后,不走在路上的警告凭空消失了,给我留下了一个干净的输出。

我希望这能帮助任何遇到同样问题的人。

邓禄
2023-03-14

我也面临同样的问题,但是是在Windows上。重新安装< code>pip对我有效。您可以使用以下命令强制重新安装< code>pip:

python -m pip install --upgrade --force-reinstall pip

对于Python3版本:

python3 -m pip install --upgrade --force-reinstall pip
 类似资料:
  • 我目前在macOS大苏尔和最近更新的pip从19.2.3到20.3.3,但现在有旧的包装脚本错误。我在网上搜索解决方案并尝试了所有这些解决方案,但没有任何效果。 所以目前我有python 3.8.2(我卸载了我的python 3.7.4) 我将python 3.8添加到现在 显示 但这对任何事情都没有帮助 我也试过重新安装,但也不好使。 我可以尝试其他解决方案吗?问题是因为路径吗? 如果这种情况仍

  • 问题内容: 我刚刚将软件包的新版本上传到PyPi(1.2.1.0-r4):我可以下载egg文件并使用easy_install进行安装,并且该版本可以正确检出。但是,当我尝试使用pip进行安装时,它将安装版本1.1.0.0。即使我明确指定要使用的版本,也会收到以下消息:,但我不明白为什么。 我仔细检查并确认1.2.1上的版本字符串大于1.1.0上的版本字符串,如下所示: 那么,为什么要选择安装1.1

  • 这似乎是一个常见问题,但无论存在多少解决方案,我似乎都无法解决它。 我也不明白的是,为什么tns医生在同一台机器上的另一个用户上工作得很好,但是,我的用户出现以下错误。有什么想法吗? 这里是我的环境变量,请注意,这些变量在tns doctor正常工作的用户中是相同的。 我已尝试重新安装nativescript。 预先感谢

  • 问题内容: 我参与了一个将项目从Oracle迁移到MySQL的项目。在Oracle中,当通过命令行运行批处理时,我能够创建一个引用或包含其他外部SQL脚本文件的SQL脚本。我有一个名为CreateAllTables.sql的脚本,在内部看起来像这样: 我已经知道MySQL命令行“源”命令,但是我的目标是通过一个命令行调用来调用一个包含其他脚本的主.sql脚本文件,如下所示: 所以我的问题是我该如何

  • 问题内容: 在我的应用程序中,我想使用: ,这需要 ,这需要 如何安装带有pip的多个版本来处理这种情况? 问题答案: 点不会帮助您。 您可以告诉它安装特定版本,但是它将覆盖另一个版本。另一方面,使用两个virtualenvs将使您在同一台计算机上安装两个版本,但不能同时使用它们。 最好的选择是手动安装这两个版本,方法是将它们以不同的名称放在Python路径中。 但是,如果您的两个库期望它们具有相

  • 我正在编写一个简单的bash脚本,它所做的一件事就是在继续之前检查数据库是否已经存在。这段代码足够简单,但每当我试图运行脚本时,我都会收到一条警告消息,我想抑制它。 以下是代码: 因此,作为输出,当if语句返回true时,我得到以下消息: 我怎样才能抑制这个信息?它不会阻止脚本运行,但我不希望看到它。