在 debian VM 上为 Flask api 构建 Scikit-Learn 时出现问题

2024-01-15

我正在开发一个 Flask API 项目,您可以访问该 APIhere https://mdb.in.tu-clausthal.de/assessment-models/apidocs/。我在 Debian 11 VM 上部署了该项目,该虚拟机全局运行 python 3.9,但我制作了 3.7 venv,并且由于代码中的依赖关系,我的项目在该环境中运行。

部署后,正如您所看到的,API 运行时没有任何问题,并且 apache 中也没有错误,但是当我尝试使用应用程序的任何功能时,它无法正常工作,并且 apache 错误日志中的错误向我显示:构建 scikit-learn 时出现问题。


4] ERROR:app:Exception on /login [POST]
[wsgi:error] Traceback (most recent call last):
[Wed Mar 22 09:19:15.300434 2023] [wsgi:error]  File "/home/admin/decision-support-system/env3.7/lib/python3.7/site-packages/sklearn/__check_build/__init__.py", li>
[Wed Mar 22 09:19:15.300437 2023] [wsgi:error] from ._check_build import check_build  # noqa
[Wed Mar 22 09:19:15.300440 2023] [wsgi:error] ModuleNotFoundError: No module named 'sklearn.__check_build._check_build'
[Wed Mar 22 09:19:15.300442 2023] [wsgi:error]
[Wed Mar 22 09:19:15.300444 2023] [wsgi:error] During handling of the above exception, another exception occurred:
[Wed Mar 22 09:19:15.300446 2023] [wsgi:error] Traceback (most recent call last):
[Wed Mar 22 09:19:15.300450 2023] [wsgi:error]  File "/home/admin/decision-support-system/env3.7/lib/python3.7/site-packages/flask/app.py", line 2528, in wsgi_app
[Wed Mar 22 09:19:15.300452 2023] [wsgi:error]  response = self.full_dispatch_request()
[Wed Mar 22 09:19:15.300454 2023] [wsgi:error]    File "/home/admin/decision-support-system/env3.7/lib/python3.7/site-packages/flask/app.py", line 1825, in full_disp>
[Wed Mar 22 09:19:15.300457 2023] [wsgi:error]    rv = self.handle_user_exception(e)
[Wed Mar 22 09:19:15.300459 2023] [wsgi:error]  File "/home/admin/decision-support-system/env3.7/lib/python3.7/site-packages/flask/app.py", line 1823, in full_disp>
[Wed Mar 22 09:19:15.300461 2023] [wsgi:error]    rv = self.dispatch_request()
[Wed Mar 22 09:19:15.300463 2023] [wsgi:error]   File "/home/admin/decision-support-system/env3.7/lib/python3.7/site-packages/flask/app.py", line 1799, in dispatch_>
[Wed Mar 22 09:19:15.300465 2023] [wsgi:error]    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
[Wed Mar 22 09:19:15.300467 2023] [wsgi:error]   File "/home/admin/decision-support-system/app/api.py", line 546, in loginValidation
[Wed Mar 22 09:19:15.300469 2023] [wsgi:error]     from app.structure import machine_learning as starter
[Wed Mar 22 09:19:15.300471 2023] [wsgi:error]   File "/home/admin/decision-support-system/app/structure/machine_learning.py", line 8, in <module>
[Wed Mar 22 09:19:15.300473 2023] [wsgi:error]    from sklearn.compose import ColumnTransformer
[Wed Mar 22 09:19:15.300476 2023] [wsgi:error]    File "/home/admin/decision-support-system/env3.7/lib/python3.7/site-packages/sklearn/__init__.py", line 81, in <mod>
[Wed Mar 22 09:19:15.300478 2023] [wsgi:error]      from . import __check_build  # noqa: F401
[Wed Mar 22 09:19:15.300480 2023] [wsgi:error]  File "/home/admin/decision-support-system/env3.7/lib/python3.7/site-packages/sklearn/__check_build/__init__.py", li>
[Wed Mar 22 09:19:15.300494 2023] [wsgi:error]    raise_build_error(e)
[Wed Mar 22 09:19:15.300496 2023] [wsgi:error]    File "/home/admin/decision-support-system/env3.7/lib/python3.7/site-packages/sklearn/__check_build/__init__.py", li>
[Wed Mar 22 09:19:15.300498 2023] [wsgi:error] raise ImportError(
[Wed Mar 22 09:19:15.300500 2023] [wsgi:error]  ImportError: No module named &apos;sklearn.__check_build._check_build&apos;
[Wed Mar 22 09:19:15.300502 2023] [wsgi:error] ___________________________________________________________________________
[Wed Mar 22 09:19:15.300504 2023] [wsgi:error]  Contents of /home/admin/decision-support-system/env3.7/lib/python3.7/site-packages/sklearn/__check_build:
[Wed Mar 22 09:19:15.300507 2023] [wsgi:error] __pycache__               __init__.py               setup.py
[Wed Mar 22 09:19:15.300509 2023] [wsgi:error] _check_build.cpython-37m-x86_64-linux-gnu.so
[Wed Mar 22 09:19:15.300511 2023] [wsgi:error]  ___________________________________________________________________________
[Wed Mar 22 09:19:15.300513 2023] [wsgi:error]  It seems that scikit-learn has not been built correctly.
[Wed Mar 22 09:19:15.300515 2023] [wsgi:error]
[Wed Mar 22 09:19:15.300516 2023] [wsgi:error] If you have installed scikit-learn from source, please do not forget
[Wed Mar 22 09:19:15.300518 2023] [wsgi:error]  to build the package before using it: run `python setup.py install` or
[Wed Mar 22 09:19:15.300520 2023] [wsgi:error]`make` in the source directory.
[Wed Mar 22 09:19:15.300522 2023] [wsgi:error] 
[Wed Mar 22 09:19:15.300524 2023] [wsgi:error]If you have used an installer, please check that it is suited for your
[Wed Mar 22 09:19:15.300526 2023] [wsgi:error] Python version, your operating system and your platform.
  

所以我尝试了所有卸载并使用 pip 重新安装或从 github 等源构建它。它永远不起作用!

我通过ssh连接在VM的终端中激活环境并尝试导入sklearn,并询问版本,这就是结果。


sklearn.show_versions()
/home/admin/decision-support-system/env3.7/lib/python3.7/site-packages/_distutils_hack/__init__.py:33: UserWarning: Setuptools is replacing distutils.
  warnings.warn("Setuptools is replacing distutils.")

System:
    python: 3.7.7 (default, Mar 16 2023, 01:45:54)  [GCC 10.2.1 20210110]
executable: /home/admin/decision-support-system/env3.7/bin/python
   machine: Linux-5.10.0-21-amd64-x86_64-with-debian-11.6

Python dependencies:
          pip: 23.0.1
   setuptools: 67.6.0
      sklearn: 1.0.2
        numpy: 1.18.5
        scipy: 1.7.3
       Cython: None
       pandas: 1.3.4
   matplotlib: 3.3.2
       joblib: 1.2.0
threadpoolctl: 3.1.0

Built with OpenMP: True
  

看来 VENV 一切都好。我还导入了下面的点列表结果: 我看到另一个帖子here https://stackoverflow.com/questions/56510280/pip-install-scikit-learn-fails-in-virtualenv-on-debian-raspberry-pi-failed-t,但我的问题是 sklearn 正在 VENV 上工作!


pip list
Package                Version
---------------------- ---------
absl-py                1.4.0
aniso8601              8.0.0
appdirs                1.4.3
astor                  0.8.1
astunparse             1.6.3
async-timeout          4.0.2
attrs                  19.3.0
cachetools             4.2.4
certifi                2022.12.7
cffi                   1.14.0
chardet                3.0.4
charset-normalizer     3.1.0
click                  8.1.3
colorama               0.4.3
cryptography           2.9.2
cycler                 0.10.0
distlib                0.3.0
filelock               3.0.12
fire                   0.3.1
flasgger               0.9.4
Flask                  2.2.3
Flask-Cors             3.0.10
flask-restplus         0.13.0
Flask-SQLAlchemy       3.0.2
flask-swagger-ui       3.25.0
gast                   0.3.3
google-auth            1.35.0
google-auth-oauthlib   0.4.6
google-pasta           0.2.0
greenlet               2.0.2
grpcio                 1.51.3
h5py                   2.10.0
idna                   3.4
importlib-metadata     6.0.0
importlib-resources    5.12.0
itsdangerous           2.1.2
Jinja2                 3.0.3
joblib                 1.2.0
jsonschema             3.2.0
Keras                  2.4.0
Keras-Applications     1.0.8
Keras-Preprocessing    1.1.2
kiwisolver             1.2.0
Markdown               3.4.1
MarkupSafe             2.1.2
marshmallow            3.5.1
matplotlib             3.3.2
mistune                0.8.4
mohawk                 1.1.0
numpy                  1.18.5
oauthlib               3.2.2
opt-einsum             3.3.0
pandas                 1.3.4
pathspec               0.8.0
Pillow                 8.0.1
pip                    23.0.1
pipdate                0.3.1
pkgutil_resolve_name   1.3.10
protobuf               4.22.1
pyasn1                 0.4.8
pyasn1-modules         0.2.8
pycparser              2.20
PyJWT                  1.7.1
pymongo                3.10.1
pyOpenSSL              19.1.0
pyparsing              2.4.7
pyrsistent             0.16.0
python-dateutil        2.8.1
pytz                   2019.3
PyYAML                 5.3.1
redis                  4.5.1
repoze.lru             0.7
requests               2.28.2
requests-hawk          1.1.1
requests-oauthlib      1.3.1
Routes                 2.4.1
rsa                    4.9
scikit-learn           1.0.2
scipy                  1.7.3
setuptools             67.6.0
six                    1.16.0
SQLAlchemy             2.0.6
structure              0.1.dev16
tensorboard            2.2.2
tensorboard-plugin-wit 1.8.1
tensorflow             2.2.2
tensorflow-estimator   2.2.0
termcolor              2.2.0
Theano                 1.0.4
threadpoolctl          3.1.0
tinynetrc              1.3.0
typing_extensions      4.5.0
urllib3                1.26.15
uWSGI                  2.0.18
Werkzeug               2.2.3
wheel                  0.40.0
wrapt                  1.15.0
zipp                   3.15.0
  

当我尝试从源构建库时,还有一些值得一提的事情,它有一些错误,其中提到了 numpy,但正如您所看到的,pip 安装工作正常,导入 sklearn 也工作正常!

是否知道这里的解决方案是什么?


您收到的错误意味着 scikit-learn 未正确构建。另请注意,scikit-learn 不再支持 python 3.7,这就是您安装旧版本的原因。

我会尝试使用 micromamba/mamba/conda 创建环境并从 conda-forge 通道安装。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 debian VM 上为 Flask api 构建 Scikit-Learn 时出现问题 的相关文章

  • 组内条件计数

    我想在之后进行条件计数groupby 例如 按列的值分组A 然后计算每组中值出现的频率5出现在列中B 如果我整个过程都这样做DataFrame 只是len df df B 5 所以我希望我能做到df groupby A df B 5 siz
  • 使用unicode在hdf5中存储字符串数据集

    我试图从包含特殊字符的文件中存储变量字符串表达式 例如 and 这是我的代码 import h5py as h5 file h5 File deleteme hdf5 a dt h5 special dtype vlen str dset
  • 如果出现重复,则主键取正值

    我有一个数据框df Key1 Key2 Value K11 K21 V1 K11 K21 V1 K13 K23 V2 K13 K23 V2 现在 例如对于相同的键 K11 K21 组合 我们有 2 个值 一负一正 如何从此 df 中仅获取正
  • Python 3.7 RPM 创建

    我正在尝试通过以下方式为 Python 3 7 3 创建 RPM 文件Python RPM https docs python org 3 distutils builtdist html但收到 文件未找到 错误 请按照以下链接查看日志 L
  • Flask+Nginx+uWSGI:导入错误:没有名为站点的模块

    我安装为http www reinbach com uwsgi nginx flask virtualenv mac os x html http www reinbach com uwsgi nginx flask virtualenv
  • 使用 Django Rest 保存 Base64ImageField 类型会将其保存为原始图像。如何将其转换为普通图像

    我的模型中有 5 个图像字段 imageS imageS imageS imageS 和 imageE 我正在尝试按以下方式保存图像 图像的类型Base64ImageField images imageA imageB imageC ima
  • 在 macOS 中通过 Python 访问进程的压缩 RAM(顶部的 CMPRS)的方法?

    我试图弄清楚如何从 Python 访问任何给定进程占用的实际 RAM 量 我发现 psutil Process PID memory info rss 工作得很好 直到操作系统决定开始压缩某些进程的 RAM 然后 所有的 memory in
  • 动态 __init_subclass__ 方法的参数绑定

    我正在尝试让类装饰器工作 装饰器会添加一个 init subclass 方法到它所应用的类 但是 当该方法动态添加到类中时 第一个参数不会绑定到子类对象 为什么会发生这种情况 举个例子 这是可行的 下面的静态代码是我试图最终得到的示例 cl
  • 如何在单元测试中使用 JSON 发送请求

    我的 Flask 应用程序中有在请求中使用 JSON 的代码 我可以像这样获取 JSON 对象 Request request get json 这一直工作得很好 但是我正在尝试使用 Python 的 unittest 模块创建单元测试 但
  • 从另一个线程调用线程中的方法,python

    如何实现线程之间的通信 我有一个线程在其中执行一些操作 然后我需要从位于主程序线程中的对象调用一个方法 并且该方法应该在主进程中执行 class Foo def help self pass class MyThread threading
  • Python HTTP Post 方法将响应返回为 magicmock 对象而不是值

    我正在尝试使用 POST 方法触发某些 API 后检查响应状态代码 响应状态代码是 Magicmock 实例类型 我正在使用在 python 2 中工作但引发 TypeError 的比较运算符检查状态代码是否在 400 和 500 之间在P
  • 在Spyder(Python 3.6)中导入cv2时出现导入错误

    我已经在Windows操作系统中安装了opencv 3 0 0 我已运行该应用程序并已成功将其安装在C 驱动器并还复制了cv2 pyd文件输入C Python27 Lib site packages正如我在几个教程视频中看到的那样 在我的
  • Apache Spark 和 scikit_learn 之间的 KMeans 结果不一致

    我正在使用 PySpark 对数据集执行聚类 为了找到簇的数量 我对一系列值 2 20 进行了聚类 并找到了wsse 簇内平方和 每个值的值k 在这里我发现了一些不寻常的东西 根据我的理解 当你增加集群数量时 wsse单调递减 但我得到的结
  • 使用 pyppeteer 与 asyncio 关联来抓取内容

    我用 python 结合编写了一个脚本pyppeteer随着asyncio从其登陆页面抓取不同帖子的链接 并最终通过跟踪通向其内页的 url 来获取每个帖子的标题 我这里解析的内容不是动态的 但是 我利用了pyppeteer and asy
  • python win32com.client 调整窗口大小

    我正在使用 Python 3 4 1 通过 win32com client 控制 Windows 应用程序 我可以激活它 我可以发送击键 点击等 现在我想知道是否有办法调整窗口大小并将其设置到特定位置 我找不到方法 这里有一些代码片段 所以
  • 配置 Django 和 Google 云存储?

    I am not使用应用引擎 我有一个在虚拟机上运行的普通 Django 应用程序 我想使用 Google Cloud Storage 来提供静态文件 以及上传 提供媒体文件 我有一个水桶 如何将 Django 应用程序链接到我的存储桶 我
  • 将文件拆分为块

    我正在尝试分割格式为以下的文件 some garbage lines target G0 S0 type xy 0 108847E 02 0 489034E 04 0 108711E 02 0 491023E 04 0 108574E 02
  • min() arg 是一个空序列

    我试图找到矩阵行中的最小元素 但有两个条件 1 它必须 gt 0 2 并且这个点一定不能被访问 is visited k is False 我下一步正在尝试做 min x for x in matr sum i if x gt 0 if i
  • 如何使用 rxpy/rxjs 延迟事件发射?

    我有两个事件流 一个来自电感环路 另一个来自网络摄像机 汽车将驶过环路 然后撞上相机 如果事件彼此相差在 N 毫秒内 汽车总是会首先进入循环 我想将它们组合起来 但我也希望每个流中不匹配的事件 硬件可能会失败 全部合并到单个流中 像这样的事
  • scrapy获取同一个类的第n个子文本

    我附上了一张照片 我面临的问题是获取同一类的第一个元素 我想得到 adxHeader gt adxExtraInfo 1st one gt adxExtraInfoPart 1st one gt a text 我编写了以下代码但不起作用 任

随机推荐

  • 为所有用户创建 PHP 会话还是仅为那些想要登录的用户创建 PHP 会话?

    目前 我的 CMS 为每个访问该网站的用户创建一个 PHP 会话 我正在考虑只为想要登录的用户创建一个会话 我这里遇到的问题是 登录用户的一些 UI 元素位于所有页面上 因此在每个页面请求中 系统都必须检查用户是否是已登录 这意味着我没有其
  • 我的 GCP 项目正在自动创建存储桶

    我在 Google App Engine 上部署了一个 node js API 它使用云存储来存储文件 我创建了一个存储桶 其标题为
  • XML 代码注释中对泛型类型的引用 [重复]

    这个问题在这里已经有答案了 据我所知 在 C 类型 方法的 XML 注释中 可以在标签中引用泛型类型 如下所示
  • KendoUI 网格/数据源中的自定义排序

    我将 dataSource 中的数据分组为 var dataSource new kendo data DataSource transport read url and some other parameters specified gr
  • Objective-C 库 - 无法形成对类实例的弱引用

    我目前正在使用 Objective C 的 XMPP 库 并且正在使用 桌面 示例代码 它登录正常 但是 当我打开新聊天或有人向我发送消息时 它会崩溃 这似乎是出了问题的地方 XMPPStream 11678 1b03 RECV 2012
  • npm 安装失败 EPROTO 获取请求失败

    当我尝试从 npm 安装软件包时 出现获取失败错误 我设置了 npm 的配置 将 strict ssl 设置为 false 设置注册表https registry npmjs org https registry npmjs org 设置代
  • 捆绑安装在 capistrano 中不起作用

    我想部署我的简单rails 4 0申请通过capistrano 3 0 I use bundler 1 3 5所以我添加Capistrano 捆绑器 https github com capistrano bundlergem 将捆绑器与
  • Java中的特殊字符

    java中如何使用特殊字符 它们属于 Cp1252 字符编码 我尝试在消息中使用它们 但无法使用它们 类似字符 de 使用关联的 UTF 值 例如在http www fileformat info info unicode char sea
  • Python 转换为数组时出现内存错误

    我的代码如下所示 from sklearn datasets import load svmlight files import numpy as np perm1 np random permutation 25000 perm2 np
  • EF5 Code First - 通过迁移更改列类型

    我是 EF5 Code First 的新手 在开始工作项目之前我正在修改概念验证 我最初创建了一个看起来像这样的模型 public class Person public int Id get set public string First
  • 如何使视图列不为空

    我正在尝试创建一个视图 其中我希望列仅为 true 或 false 然而 似乎无论我做什么 SQL Server 2008 都认为我的位列可能以某种方式为空 我有一个名为 产品 的表 其中 状态 列是INT NULL 在视图中 我想为 Pr
  • 使用 remix run 将数据发送到服务器

    我在使用 remix run 将数据发送到服务器时遇到问题 我不确定我是否完全理解 useAction 数据的工作原理 我了解 useLoaderData 函数的工作原理 但是当您尝试将数据发送到服务器时 我会收到错误 我想要做的是当我单击
  • 当使用最新的 Monodevelop 和 VS 2012 RC 共享代码时我遇到问题

    当使用最新的Monodevelop和VS 2012 RC来共享代码时 我可以从运行 MonoDevelop 的 Mac 和运行最新 VS 2012 beta 的 Windows 7 PC 加载和使用 sln 解决方案 csproj 项目文件
  • 如何在Excel中将数字保存为字符串?

    如何在Excel中将数字保存为字符串 当我尝试输入数字 00112233 时 Excel 自动将其格式设置为 112233 并将其保存为数字 但我希望前面的 0 不被截断并将数字保存为字符串 作为解决方法 我使用引号 来保存实际的字符串 有
  • Crispy-Forms 包含标签导致许多重复模板

    我有一个 Django 站点 它使用下面的模板来呈现一个 Cripy Forms 模型表单集 使用django debug toolbar 我推测include标签多次渲染 bootstrap4 模板 我认为这就是影响我性能的原因 即加载包
  • + 是什么意思?正则表达式中的意思? [复制]

    这个问题在这里已经有答案了 我见过 正则表达式中有很多 但我不确定它真正代表什么 我知道 means 1或更多 并且 means 0 or 1 也是如此 means 0或者更多 在这种情况下 为什么不直接使用 意思是0或者更多 我只需要知道
  • Pygame 淡入黑色函数

    我正在使用 pygame 最新版本在 python 3 中编写游戏 我有一个功能 旨在慢慢淡出屏幕 直到全黑 它应该通过在屏幕上多次位块传输低 alpha 黑色表面来实现 但是当我测试它时 它只会阻止游戏直到循环完成 我怀疑 black s
  • 与 Azure Application Insights、ASP.NET MVC 和 NLog 的活动关联

    如何设置混音 我配置没有问题应用洞察 and NLog但我不知道如何关联操作 我使用最新版本的NLog所以它知道System Diagnostics Trace CorrelationManager ActivityId以其 activit
  • 系统托盘上下文菜单具有渐变背景

    我正在用java开发桌面应用程序 启动时我的应用程序从系统托盘运行 但是系统托盘的上下文菜单根据操作系统具有标准的外观和感觉 我想自定义上下文菜单 我想为其提供渐变背景 想要更改字体 边框等 请告诉我这可能吗 如果有一些示例 请提供相同的链
  • 在 debian VM 上为 Flask api 构建 Scikit-Learn 时出现问题

    我正在开发一个 Flask API 项目 您可以访问该 APIhere https mdb in tu clausthal de assessment models apidocs 我在 Debian 11 VM 上部署了该项目 该虚拟机全