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
当我在终端输入时:sudo python3 -m pip install mp3play
这是什么原因造成的,我该如何解决才能安装模块 mp3play
?
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.
Pip 不仅是一个独立的可执行文件,它还是一个 python 模块。
事实上,在 python 文档中,它直接推荐使用 -m
语法来使用 pip 安装包。
见https://docs.python.org/3.5/installing/index.html#basic-usage:
The standard packaging tools are all designed to be used from the command line.
The following command will install the latest version of a module and its dependencies from the Python Packaging Index:
python -m pip install SomePackage
我的猜测是您系统的 pip
(可执行文件)被 python2 版本的 pip
可执行文件隐藏。但听起来您没有安装 pip(模块),因此 python3 可执行文件可以找到它,因此您可能需要专门重新安装 pip(模块)。
为此使用 python3 -m ensurepip
(docs for ensurepip) 如果从您的 python3 解释器的角度来看它不存在,它将安装 pip。
另一个问题可能是它在您的当前目录中找到一个名为 pip
的文件、可执行文件或目录,并且它试图将 pip
视为一个模块,但它不是实际上是一个模块。
如果不是我不确定。但绝对不是,因为 pip 不是模块。
我遇到了同样的问题。我发现一个旧的 pip 目录是 python 2.7 安装遗留下来的,位于 C:\Users\my-username\pip
。这导致 python 尝试从那里加载 pip 并失败。
我删除了那个目录,我的错误变成了 No module named pip
.
我还没有解决问题,但我正在 http://bugs.python.org/issue29586
解决它
我遇到了同样的问题,none 之前的答案为我解决了。
当我卸载并重新安装 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时,如果找不到需要的可执行文件。
发生这种情况的原因是 read:
When uninstalling a package, pip will now rename it in place to a name
that cannot be imported, and once it has confirmed that everything
will succeed (including installing new versions if it’s doing an
upgrade), only then will it delete those folders. If something fails,
it renames them back.
解决方案:
除了解决方案 之外,您还可以使用全新安装 pip 模块:
py <-version> -m ensurepip --upgrade
其中 <-version>
是一个可选参数,可以用 python 的版本替换你一直面临的问题 -3.8
.
Python自带一个ensurepip模块,可以在Python环境下安装pip。这将安装 pip 模块,该模块最初与您一直使用的 python 版本一起打包。
Post 您可以 运行 将 pip 端口升级到较新版本的升级命令。
py <-version> -m pip install --upgrade pip
如果您遇到任何 EnvironmentError
权限,您可以附加 --user
选项。
参考:
我的 Raspberry Pi 出现以下错误:No module named pip__main__; 'pip' is a package and cannot be directly executed
当我在终端输入时:sudo python3 -m pip install mp3play
这是什么原因造成的,我该如何解决才能安装模块 mp3play
?
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.
Pip 不仅是一个独立的可执行文件,它还是一个 python 模块。
事实上,在 python 文档中,它直接推荐使用 -m
语法来使用 pip 安装包。
见https://docs.python.org/3.5/installing/index.html#basic-usage:
The standard packaging tools are all designed to be used from the command line.
The following command will install the latest version of a module and its dependencies from the Python Packaging Index:
python -m pip install SomePackage
我的猜测是您系统的 pip
(可执行文件)被 python2 版本的 pip
可执行文件隐藏。但听起来您没有安装 pip(模块),因此 python3 可执行文件可以找到它,因此您可能需要专门重新安装 pip(模块)。
为此使用 python3 -m ensurepip
(docs for ensurepip) 如果从您的 python3 解释器的角度来看它不存在,它将安装 pip。
另一个问题可能是它在您的当前目录中找到一个名为 pip
的文件、可执行文件或目录,并且它试图将 pip
视为一个模块,但它不是实际上是一个模块。
如果不是我不确定。但绝对不是,因为 pip 不是模块。
我遇到了同样的问题。我发现一个旧的 pip 目录是 python 2.7 安装遗留下来的,位于 C:\Users\my-username\pip
。这导致 python 尝试从那里加载 pip 并失败。
我删除了那个目录,我的错误变成了 No module named pip
.
我还没有解决问题,但我正在 http://bugs.python.org/issue29586
解决它我遇到了同样的问题,none 之前的答案为我解决了。
当我卸载并重新安装 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时,如果找不到需要的可执行文件。
发生这种情况的原因是 read:
When uninstalling a package, pip will now rename it in place to a name that cannot be imported, and once it has confirmed that everything will succeed (including installing new versions if it’s doing an upgrade), only then will it delete those folders. If something fails, it renames them back.
解决方案:
除了解决方案
py <-version> -m ensurepip --upgrade
其中 <-version>
是一个可选参数,可以用 python 的版本替换你一直面临的问题 -3.8
.
Python自带一个ensurepip模块,可以在Python环境下安装pip。这将安装 pip 模块,该模块最初与您一直使用的 python 版本一起打包。
Post 您可以 运行 将 pip 端口升级到较新版本的升级命令。
py <-version> -m pip install --upgrade pip
如果您遇到任何 EnvironmentError
权限,您可以附加 --user
选项。
参考: