pip:没有名为 _internal 的模块
- 2025-02-18 09:23:00
- admin 原创
- 140
问题描述:
当我尝试以任何方式使用 pip 时,我遇到了问题。我使用的是 Ubuntu 16.04.4
我应该说我已经使用过它了,而且我从来没有遇到任何问题,但是从今天开始当我使用任何命令时我总是收到相同的错误(作为使用的示例pip --upgrade
)。
Traceback (most recent call last):
File "/usr/local/bin/pip", line 7, in <module>
from pip._internal import main
ImportError: No module named _internal
我尝试sudo apt-get remove python-pip
过这样做sudo apt-get install python-pip
,但没有任何改变。
解决方案 1:
这对我来说是这样的:
python -m pip install --upgrade pip
环境:通过brew安装的 OSX && Python
解决方案 2:
askUbuntu的一个答案是有效的。
对于 pip2.7,您可以首先 curl https://bootstrap.pypa.io/pip/2.7/get-pip.py -o get-pip.py
,然后python2.7 get-pip.py --force-reinstall
重新安装 pip。
问题解决了。也适用于python3。
解决方案 3:
这个解决方案对我有用:
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3 get-pip.py --force-reinstall
或者使用sudo来提升权限(sudo python3 get-pip.py --force-reinstall
)。
当然你也可以用python
来代替python3
;)
来源
解决方案 4:
你使用的是 Python 2 还是 Python 3?以下命令可能不同!
运行
python3 -m pip --version
看看是否安装了 pip。如果是,则运行
python3 -m pip install --upgrade pip
。如果没有,则运行
sudo apt-get install python3-pip
,并再执行一次。
解决方案 5:
此问题可能是由于普通用户没有权限访问软件包的 py 文件。1
. root 用户可以运行“pip list”
其他普通用户无法运行“pip list”
[~]$ pip list
Traceback (most recent call last):
File "/usr/bin/pip", line 7, in <module>
from pip._internal import main
ImportError: No module named pip._internal
检查 pip py 文件权限。
[root@]# ll /usr/lib/python2.7/site-packages/pip/
合計 24
-rw------- 1 root root 24 6月 7 16:57 __init__.py
-rw------- 1 root root 163 6月 7 16:57 __init__.pyc
-rw------- 1 root root 629 6月 7 16:57 __main__.py
-rw------- 1 root root 510 6月 7 16:57 __main__.pyc
drwx------ 8 root root 4096 6月 7 16:57 _internal
drwx------ 18 root root 4096 6月 7 16:57 _vendor
解决方案:root用户登录并运行
chmod -R 755 /usr/lib/python2.7
修复此问题。
解决方案 6:
参考此问题列表
sudo easy_install pip
在 Mac OS 下对我有用
对于python3
,可以尝试sudo easy_install-3.x pip
依赖于 Python 3.x 版本。或者python3 -m pip install --user --upgrade pip
解决方案 7:
在文件“/usr/local/bin/pip”中更改 from pip._internal import main
为from pip import main
解决方案 8:
从pip 文档中检查,这个命令对我有用:
python -m ensurepip --upgrade
解决方案 9:
我在PYTHONPATH
设置为包含内置site-packages
目录时看到了这个问题。由于 Python 会自动查找该目录,因此没有必要,可以将其删除。
解决方案 10:
我刚刚遇到了同样的问题,就我的情况而言,事实证明这是我的虚拟环境中的 python 安装与站点范围的 python(Ubuntu)之间的冲突。对我来说,解决这个问题的方法是以这种方式运行 pip,以强制使用正确的 python 安装(在我的 vortualenv 中):
python3 -m pip install PACKAGE
而不是
pip3 install PACKAGE
当我尝试按照这里的一些建议重新安装 pip 的答案时,我意识到了这一点,尽管我已经激活了我的虚拟环境,但我得到的错误输出指向现有的站点范围的 python 库路径。在删除和重新安装东西之前值得一试。
解决方案 11:
为我
python -m pip uninstall pip
解决了这个问题。参考
解决方案 12:
这可能是由于版本冲突,尝试运行它,它会以某种方式删除旧的 pip。
sudo apt remove python pip
解决方案 13:
我通过运行以下命令修复了此错误:
sudo apt remove python-pip
wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py
它将删除以前安装的 pip 并重新安装它。
解决方案 14:
对我来说没有什么用,只有一件事:我在命令前使用了 sudo 并且它运行良好。
解决方案 15:
当我尝试通过 pip3 安装包时,在 Windows 上遇到了同样的错误:
Traceback (most recent call last):
File "d:anacondalib
unpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "d:anacondalib
unpy.py", line 85, in _run_code
exec(code, run_globals)
File "D:AnacondaScriptspip3.6.exe__main__.py", line 5, in <module>
ModuleNotFoundError: No module named 'pip._internal'
我的python是通过Anaconda安装的。 我通过conda重新安装pip解决了这个问题:
conda install pip
此后pip恢复正常。
解决方案 16:
pip 没有在您的“用户”上正确安装,因此请尝试以下操作:
sudo python3 -m pip install --user --upgrade pip
解决方案 17:
仅适用于当前用户:
easy_install --user pip
或者
python -m pip install --upgrade --user pip
/usr/bin/python: No module named pip
即使which pip
找到了名为 pip 的模块,第二个也可能给出。在这种情况下,请尝试easy_install
解决方案 18:
在某些情况下,可能会发生这种情况,因为 pip 已由 root 用户升级,并且由于某种原因,升级默认在“site-packages”目录中创建并非所有用户都可访问的子目录和文件。
为了检查是否是这种情况,我们需要找到 site-packages 目录,例如使用 python3,运行以下命令:
python -c 'import sysconfig; print(sysconfig.get_paths()["purelib"])'
现在让我们检查一下是否存在与 pip 相关的子目录,并且这些子目录的权限有问题:
site_pkg_dirs=$(python -c 'import sysconfig; print(sysconfig.get_paths()["purelib"])')
pushd ${site_pkg_dirs}
ls -ld pip*
popd
如果输出为空 - 那么这个答案将无法解决您的问题;抱歉:-(
但如果输出不为空,例如:
drwxr-x--- 5 root root 111 Jan 01 00:00 pip
drwxr-x--- 2 root root 170 Jan 01 00:00 pip-21.3.1.dist-info
然后仔细检查每个权限列表:如果“全部”权限三元组没有r
和x
- 您需要添加它们;并且由于同样的问题可能出现在其他软件包中,让我们更彻底地研究它:
find ${site_pkg_dirs} -type d | chmod a+rx
find ${site_pkg_dirs} -type f | chmod a+r
这可确保站点包目录中的所有子目录均可读取和递归,并且这些子目录中的所有文件均可读取。具体来说,这将适用于与 pip 相关的子目录,当您查看它们时,它们现在应如下所示ls -l
:
drwxr-xr-x 5 root root 111 Jan 01 00:00 pip
drwxr-xr-x 2 root root 170 Jan 01 00:00 pip-21.3.1.dist-info
这应该可以解决你的 pip 问题!让我们检查一下:如果你现在运行
pip show pip
你应该得到类似这样的结果:
$ pip3.6 show pip
Name: pip
Version: 21.3.1
Summary: The PyPA recommended tool for installing Python packages.
Home-page: https://pip.pypa.io/
Author: The pip developers
Author-email: distutils-sig@python.org
License: MIT
Location: /usr/lib/python/site-packages
Requires:
Required-by:
可能与您自己的站点包目录不同。
解决方案 19:
将 python 安装从 3.6 升级到 3.7 后,我在虚拟环境中遇到了同样的问题,但只有在 vent 全局 pip 工作正常的情况下,为了解决这个问题,我在重新创建后停用并删除了我的虚拟环境,现在一切正常,在 venv 上:
deactivate
rm -rvf venv
然后重新创建虚拟环境。我使用 mac OS 10.11 和 python 3
解决方案 20:
我的解决方案:像大多数其他答案一样,第一步是:
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python2.7 get-pip.py --force-reinstall
二、添加软链接
sudo ln -s /usr/local/bin/pip /usr/bin/pip
解决方案 21:
你可以先删除它,然后重新安装就可以了。对于centos:
yum remove python-pip
yum install python-pip
解决方案 22:
我的解决方案是添加import pip
与命令链接的脚本pip/pip3
。
首先,用你喜欢的文本编辑器和 sudo 模式打开文件(例如/usr/local/bin/pip
)。例如,我使用sudo vim /usr/local/bin/pip
打开脚本文件。
您将获得以下一些文件:
import re
import sys
from pip._internal import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script.pyw?|.exe)?$', '', sys.argv[0])
sys.exit(main())
之后,在问题解决import pip
之前插入语句。from pip._internal import main
解决方案 23:
这些通常来自使用 pip “更新”系统安装的 pip,和/或在用户下安装了多个 pip。我的解决方案是清除用户下安装的多个 pip,重新安装 pip repo,然后像上面一样“pip install --user pip”。
请参阅:https ://github.com/pypa/pip/issues/5599以获取有关该问题的官方完整讨论和修复。
解决方案 24:
Windows操作系统:
1、download this file:“https://bootstrap.pypa.io/get-pip.py”,Put it in this(E:PythonProjectenvScripts’(Your virtual environment installation directory)) directory!
2、open ‘Windows PowerShell’
3、cd ‘E:PythonProjectenvScripts’(Your virtual environment installation directory)
4、run cmd ‘py get-pip.py’
解决方案 25:
我也遇到了这个问题,因为我的一些文件夹由于硬盘故障而损坏,因此 pip_internal 文件夹也损坏了。为了解决这个问题,我首先运行了磁盘修复重启,以便从驱动器中删除损坏的文件夹,然后pip
从站点包中删除了整个文件夹(Python>Lib>site-packages>pip)。
然后我在终端中运行此命令:python -m ensurepip
它重新安装了整个 pip 包。此后 pip 运行正常。
解决方案 26:
我做到了
py -m install packagename
而不是
pip install packagename
解决方案 27:
请验证 /usr/local/lib/python3.9/ 的目录权限,并使用 chown 命令修改权限
sudo chown -R centos:centos /usr/local/lib/python3.9/
解决方案 28:
在 Mac 和 MiniConda 上,我使用了以下命令并且有效:
conda activate /opt/miniconda3 /opt/miniconda3/bin/conda install -p /opt/miniconda3 pip -y
解决方案 29:
我尝试升级到 python 3.12 后遇到了这个问题
对我来说解决办法是curl -sS https://bootstrap.pypa.io/get-pip.py | python3.12
测试pip3.12 -v
然后发出echo "alias pip=$(which pip3.12)" >> ~/.bashrc
,不要忘记source ~/.bashrc
扫码咨询,免费领取项目管理大礼包!