我在Raspberry Pi上收到以下错误:No module named pip__main__; 'pip' is a package and cannot be directly executed
当我输入终端时:sudo python3 -m pip install mp3play
导致此问题的原因是什么以及如何修复它以便我可以安装模块mp3play
?
答案 0 :(得分: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 ensurepip
(docs for ensurepip),如果python3解释器的persepctive中没有pip,它将安装pip。
另一个问题可能是它在当前目录中找到了一个名为pip
的文件,可执行文件或目录,并且它正试图将pip
视为一个模块,而事实上并非如此一个模块。
如果不是我不确定。但绝对不是因为pip不是模块。
答案 1 :(得分:3)
pip
是一个独立的可执行文件。如果在您的路径中pip
,则可以执行
pip install mp3play
如果您的路径中没有pip
,那么您需要导航到pip
所在的目录,然后执行上述操作。
如果需要,请在命令中添加sudo
。
您遇到的确切错误是由于pip
是一个包,但-m
用于执行模块。
编辑:pip
还附带了几个有用的别名函数,指向不同的Python安装。通常,pip
指向您的主要Python安装(仅在执行python
时输入的那个),pipV
其中V
是一个数字,例如2
或3
将安装添加到版本V
的主要Python(pip3
添加到您的python3
环境中)。最后有pipV.S
其中V
与之前相同,S
是颠覆。例如,pip3.4
安装Python 3.4。
答案 2 :(得分:1)
我遇到了同样的问题。我发现在C:\Users\my-username\pip
的python 2.7安装中遗留了一个旧的pip目录。这导致python尝试从那里加载pip并失败。
我删除了该目录,我的错误刚刚变为No module named pip
。
我还没有解决问题,但我正在http://bugs.python.org/issue29586
处理这个问题。答案 3 :(得分: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并解决问题。