即使"要求已经在Pip中满足",也找不到Python模块

zoe*_*uff 8 python pip python-requests

在OS X中编写一些python,它说我用pip"ImportError:no module named requests"安装了几个软件包

运行pip安装请求时

> sudo -H pip install requests 
Requirement already satisfied: requests in /usr/local/lib/python2.7/site-packages 
Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python2.7/site-packages (from requests) 
Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /usr/local/lib/python2.7/site-packages (from requests) 
Requirement already satisfied: urllib3<1.22,>=1.21.1 in /usr/local/lib/python2.7/site-packages (from requests) 
Requirement already satisfied: idna<2.6,>=2.5 in /usr/local/lib/python2.7/site-packages (from requests)
Run Code Online (Sandbox Code Playgroud)

它在twindb_cloudflare,requests,group,tarutil和MySQL DB上出错.我能够在另一个脚本(在同一文件夹中)运行完全相同的导入而不会出错.

Abh*_*ikh 12

在命令提示符下运行.

pip list
Run Code Online (Sandbox Code Playgroud)

如果您有旧版本,请检查系统上安装的版本.

尝试卸载包...

pip uninstall requests
Run Code Online (Sandbox Code Playgroud)

尝试安装后:

pip install requests
Run Code Online (Sandbox Code Playgroud)

您还可以测试pip是否不起作用.

easy_install requests
Run Code Online (Sandbox Code Playgroud)


小智 11

我也曾被这个问题困扰,最后找到了解决办法。

默认为用户安装,因为普通站点包不可写

已满足要求: django 在 /usr/lib/python3/dist-packages (2.2.12)

使用“sudo”来解决用户安装问题;

和 pip install --target=/usr/local/python3.7/site-packages --upgrade {module_name}

有人提到过这一点并为我工作。


Mud*_*bib 9

方法一

如果你的系统安装了多个 Python 版本,就像我的 ubuntu 中默认的 Python 版本是pythonpython3,那么 pip 也有不同的版本,例如pippip3。因此,在这种情况下,可以通过特定的 Python 版本访问 pip,-m如下所示:

python3 -m pip install package_name
Run Code Online (Sandbox Code Playgroud)

或者

python -m pip install package_name
Run Code Online (Sandbox Code Playgroud)

sudo如果您使用的是 Linux,请确保使用。

方法二

您需要找到安装目录(Python 从中找到模块)。为此,运行以下 Python 脚本:

import sys
print(sys.path)
Run Code Online (Sandbox Code Playgroud)

就我而言,它返回:

['', '/usr/lib/python38.zip', '/usr/lib/python3.8', '/usr/lib/python3.8/lib-dynload', '/home/mudasir_habib/.local/lib/python3.8/site-packages', '/usr/local/lib/python3.8/dist-packages', '/usr/lib/python3/dist-packages']
Run Code Online (Sandbox Code Playgroud)

这些是 Python 用于查找模块的路径,我复制了dist-packages路径。现在通过提供安装目标路径来运行命令,如下所示:

python -m pip install package_name -t /your/copied/path
Run Code Online (Sandbox Code Playgroud)

就我而言,我运行以下命令来解决我的问题:

sudo python3 -m pip install keras -t /usr/lib/python3/dist-packages
Run Code Online (Sandbox Code Playgroud)


Fla*_*uff 7

如果您使用的是 Mac,则可能是使用 pip 安装了模块(即 python2,但使用 python3 执行代码,而 python3 没有为 python2 安装的模块)。

Mac 将 python 版本 2 设置为默认值,通常不预装 pip 或与版本 2 链接。我建议保持这种方式。将版本 3 用于您的个人用例,并将您的 Mac 保留为默认版本 2。由于您必须自己安装 python3,这意味着您可能还想检查/安装 pip3。

检查是否安装了 python 3:

python3 --version
Run Code Online (Sandbox Code Playgroud)

检查是否安装了 pip3(从 python 3.4 开始通常默认包含):

pip3 --version
Run Code Online (Sandbox Code Playgroud)

检查您使用 pip3 安装了哪些软件包:

pip3 list
Run Code Online (Sandbox Code Playgroud)

如果您使用编辑器工具,请确保在运行文件时将其设置为使用 python3。

VS Code 示例:将 VS Code 设置为使用右下角的 Python3,打开 .py 文件时您应该会看到:设置Python版本

现在,如果您想将任何模块导入 python,请确保使用 pip3 安装它们:

pip3 install package_name
Run Code Online (Sandbox Code Playgroud)

如果遇到权限问题,您可以考虑使用 sudo 权限运行命令:

sudo pip3 install package_name
Run Code Online (Sandbox Code Playgroud)


Aym*_*byk 7

就我而言,我运行的是 Jupyter 附带的 Python 版本,它显然将模块安装在与默认位置不同的位置。我通过在 Jupyter 中运行它发现了这一点:

import sys
sys.executable
Run Code Online (Sandbox Code Playgroud)

这给了我

'/usr/local/Cellar/jupyterlab/3.0.13/libexec/bin/python3.9'
Run Code Online (Sandbox Code Playgroud)

然后我就可以在 Jupyter 中运行以下命令:

!/usr/local/Cellar/jupyterlab/3.0.13/libexec/bin/python3.9 -m pip install scipy matplotlib
Run Code Online (Sandbox Code Playgroud)

然后我就可以导入我的模块了:

import scipy.stats
import matplotlib
Run Code Online (Sandbox Code Playgroud)


小智 5

我有同样的问题(也在 MAC OS 中)并通过使用 python3 运行 python 脚本来解决它:python3 script.py

就我而言,我也在使用 pip3 而不是 pip。