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

问题描述 投票:5回答:4

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

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

造成这种情况的原因是什么?如何修复它以便我可以安装模块mp3play

python pip
4个回答
4
投票

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不是模块。


3
投票

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

pip install mp3play

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

如果需要,请将sudo添加到命令中。

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

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


1
投票

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

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

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


1
投票

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

当我卸载并重新安装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并解决问题。

© www.soinside.com 2019 - 2024. All rights reserved.