繁体   English   中英

Python`no module pip.__main__;`尝试安装模块时出错

[英]Python `no module pip.__main__;` error when trying to install a module

我的 Raspberry Pi 出现以下错误: No module named pip__main__; 'pip' is a package and cannot be directly executed No module named pip__main__; 'pip' is a package and cannot be directly executed

当我在终端输入时: sudo python3 -m pip install mp3play

这是什么原因造成的,我该如何修复它以便我可以安装模块mp3play

Pip不仅是一个独立的可执行文件,它也是一个python模块。

实际上在python文档中,它直接建议使用-m语法来使用pip安装包。

请参阅https://docs.python.org/3.5/installing/index.html#basic-usage

标准打包工具都设计为从命令行使用。

以下命令将从Python Packaging Index安装最新版本的模块及其依赖项:

 python -m pip install SomePackage 

我的猜测是你的系统的pip (可执行文件)被pip可执行文件的python2版本所掩盖。 但是听起来你没有安装pip(模块)这样你的python3可执行文件就可以找到它,所以你可能需要专门重新安装pip(模块)。

对于那个使用python3 -m ensurepipdocs for ensurepip ),如果你的python3解释器的persepctive不存在pip将安装pip。

另一个问题可能是它在当前目录中找到了一个名为pip的文件,可执行文件或目录,并且它试图将该pip视为一个模块,它实际上并不是一个模块。

如果不是我不确定。 但绝对不是因为pip不是模块。

pip是一个独立的可执行文件。 如果pip if在你的路径中,你可以执行

pip install mp3play

如果pip不在您的路径中,那么您需要导航到pip所在的目录,然后执行上面的操作。

如果需要,请在命令中添加sudo

遇到的确切错误是由于pip是一个包,但-m用于执行模块。

编辑: pip还附带了几个有用的别名函数,指向不同的Python安装。 一般来说, pip指向你的主要Python安装(你在简单地执行python时输入的pipV ), pipV其中V是一个数字,如23将安装添加到你的主要版本Vpip3添加到你的python3环境) 。 最后有pipV.S其中V与之前相同, S是颠覆。 例如,Python 3.4的pip3.4安装。

我有同样的问题。 我发现旧的pip目录是从python 2.7安装中遗留下来的,位于C:\\Users\\my-username\\pip 这导致python尝试从那里加载pip并失败。

我删除了该目录,我的错误就变成了No module named pip

我还没有解决问题,但我正在http://bugs.python.org/issue29586处理它

我有同样的问题,之前的答案都没有为我解决。

当我卸载并重新安装python到我的电脑时出现错误。 因为看起来先前现有的pip版本没有完全删除,当我试图用python -m pip install package导入它时,它实际上是试图调用以前的版本。

要解决此问题,请先手动删除以下位置的pip文件夹:

C:\Users\username\pip
C:\Users\username\AppData\Local\pip
C:\Users\username\AppData\Local\Programs\Python\Python**\lib\site-packages\pip***
C:\Python**\pip

然后下载get-pip.py

最后,导航到下载它的文件夹并运行:

python get-pip.py

此过程应重新安装pip并解决问题。

解释:

当现有的 pip 模块在升级时可能会受到影响时,就会发生这种情况。

您可能会在site-packages观察到,任何需要的文件/文件夹都已重命名为前导~ ,例如pip更改为~ip或带有前导~的子文件夹。

因此,在引用模块 pip 时,如果找不到所需的可执行文件。

出现这种情况的原因是

卸载软件包时,pip 现在会将其重命名为无法导入的名称,并且一旦确认一切都会成功(包括在进行升级时安装新版本),它才会删除这些文件夹。 如果出现故障,它会将它们重新命名。

解决方案:

除了@Djib2011的解决方案之外,您还可以使用全新安装pip模块:

py <-version> -m ensurepip --upgrade

其中<-version>是一个可选参数,可以替换为您遇到问题的 python 版本,例如-3.8

Python自带了一个ensurepip模块,可以在Python环境中安装pip。 这将安装 pip 模块,该模块最初与您一直使用的 python 版本一起打包。

发布您可以运行升级命令将 pip 移植到较新版本的帖子。

py <-version> -m pip install --upgrade pip

如果由于许可而遇到任何EnvironmentError则可以附加--user选项。

参考:

  1. 点安装
  2. pip 如何使用前导破折号删除错误安装的软件包

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM