安装调试kotti_ai:AI+互联网企业级部署应用软件包@riscv+OpenKylin

先上结论:riscv+OpenKylin可以安装pyramid+kotti+kotti_ai

但是paddle_serving_client无法安装,项目的AI实现部分需要改用其它方法,比如onnx。最终onnx也没有装成,只好用飞桨自己的推理。

安装kotti

pip install kotti

安装kotti和pyramid相关库

pip install kotti_image kotti_tinymce pyramid_debugtoolbar plone

安装kotti_ai

python 3 setup.py develop

最终bcrypt过不去,放弃image部分。最终发现没有bcrypt kotti都过不去。最后是通过apt安装bcrypt:apt install python3-bcrypt

尝试编译安装rust(失败)

先安装需要的包:

apt install curl
apt install ninja-build

git clone https://github.com/rust-lang/rust

 进入rust目录,然后编译,可以先提前设置环境变量:export MAX_JOBS=64

不过我感觉没有,还是16个编译线程,估计算能云就是给了16个?

cd rust
./configure
make -j 64 
make install 

估计需要4-5小时。而且自动识别了riscv!

[2172/2183] 304/335 结果到了最后报错,大约是需要llvm,但是安装llvm之后还是报错。

下载二进制文件安装rust

最终是下载编译好的软件包:Release Rust RISC-V Binaries · msizanoen1/rust-binaries · GitHub

 下载之后tar -zvf 解包,然后执行install.sh文件即可。

安装llvm

那就开装

git clone --depth 1 https://github.com/llvm/llvm-project llvm
cd llvm/llvm
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
# cmake --build . -j64
make -j64
make install 

最终放弃rust。

尝试编译安装bcrypt

官网文档:GitHub - pyca/bcrypt: Modern(-ish) password hashing for your software and your servers

Installation

To install bcrypt, simply:

$ pip install bcrypt

Note that bcrypt should build very easily on Linux provided you have a C compiler and a Rust compiler (the minimum supported Rust version is 1.56.0).

For Debian and Ubuntu, the following command will ensure that the required dependencies are installed:

$ sudo apt-get install build-essential cargo

下载源码:

git clone https://github.com/pyca/bcrypt

源码安装:python3 setup.py install 

结果需要rust,这里卡住过不去了。

rust无法装,所以bcypt无法装,kotti也就无法装.... 一度想放弃在riscv OpenKylin使用kotti和kotti_ai

尝试使用apt安装bcrypt

apt install python3-bcrypt

安装成功

运行飞桨例子

代码参见以102flowers数据集为例训练ResNet50模型_flowers102数据集-CSDN博客

报错,说是numpy那里有问题。

运行mnist的例子,可以过:飞桨AI框架安装和使用示例_飞浆 本地安装-CSDN博客

再次重新安装kotti和kotti_ai

安装kotti

pip install kotti过了。

安装  pip install  kotti_tinymce

安装sqlalchemy低版本:pip install sqlalchemy==1.4.42

安装:pip install kotti_image

安装pyramid 1.9(不是必须,安装pyramid1.10也行)

安装kotti_ai

pip install -e ".[testing]" 不行,说没安上,去dist 使用pip安装.egg文件,还是报错。

使用python setup.py develop 报错需要pyramid<2.0 ,但其实已经安装pyramid1.9或1.10了。

把这个目录删除/usr/lib/python3.8/site-packages/pyramid-2.0.2-py3.8.egg

python setup.py develop ok

不ok,要用这个方法安装:

 python3 setup.py develop  --user

怀疑是因为使用了root账户,python环境有点乱了。

最终这样就算把kotti_ai安装好了。当然会碰到paddle_serving_client报错,这个以后再说。

结论:

riscv+OpenKylin下成功安好了kotti+kotti_ai

我们就可以进行下一步AI开发工作了!

调试

安装kotti的时候提示:Failed to build bcrypt

Successfully built kotti js.bootstrap js.jquery js.jqueryui pyramid_deform zope.interface docopt filedepot html2text js.angular js.fineuploader js.html5shiv js.jquery_form js.jquery_tablednd js.jquery_timepicker_addon js.jqueryui_tagit pyramid_beaker pyramid_chameleon beaker js.jquery-maskedinput js.jquery-maskmoney js.jquery-sortable js.modernizr js.select2 js.tinymce zope.hookable zope.i18nmessageid
Failed to build bcrypt
ERROR: Could not build wheels for bcrypt, which is required to install pyproject.toml-based projects

按照提示安装bcrypt

安装bcrypt的时候报错:error: can't find Rust compiler

按照提示安装rust

安装rust报错:libbzip2

 Building HTSlib requires libbzip2 development files to be installed on the
      build machine; you may need to ensure a package such as libbz2-dev (on Debian
      or Ubuntu Linux) or bzip2-devel (on RPM-based Linux distributions or Cygwin)
      is installed.
      
      Either configure with --disable-bz2 (which will make some CRAM files
      produced elsewhere unreadable) or resolve this error to build HTSlib.
      config.mk:2: *** Resolve configure error first.  Stop.
      # pysam: htslib configure options: None

先不装rust bcrypt了。

编译安装rust报错:Couldn't find required command: ninja (or ninja-build)

You should install ninja as described at
<https://github.com/ninja-build/ninja/wiki/Pre-built-Ninja-packages>,
or set `ninja = false` in the `[llvm]` section of `config.toml`.
Alternatively, set `download-ci-llvm = true` in that `[llvm]` section
to download LLVM rather than building it.

安装ninja-build

apt install ninja-build

编译安装rust编译到100%报错:

64gc-unknown-linux-gnu/stage0-rustc/riscv64gc-unknown-linux-gnu/release/deps/librustc_driver-aba2a9eed125dd79.so" "-shared" "-Wl,-z,relro,-z,now" "-Wl,-O1" "-nodefaultlibs" "-Wl,-z,origin" "-Wl,-rpath,$ORIGIN/../lib"
  = note: /usr/bin/ld: cannot find -lWl,--push-state,--as-needed,-latomic,--pop-state: No such file or directory
          collect2: error: ld returned 1 exit status
          

error: could not compile `rustc_driver` (lib) due to 1 previous error
Build completed unsuccessfully in 0:00:20
make: *** [Makefile:19: all] Error 1

这里暂时过不去了。

最终从这里下载编译好的包。Release Rust RISC-V Binaries · msizanoen1/rust-binaries · GitHub

安装bcrypt报错:error: Rust 1.41.0-nightly does not match extension requirement >=1.63.0

二进制版本太低,需要1.63以上,再搞不定就真的不搞了。

好像这里真的搞不定了。

最后用apt install python3-bcrypt解决

运行飞桨例子报错

代码见这里:以102flowers数据集为例训练ResNet50模型_flowers102数据集-CSDN博客

 python3 flower102.py
Traceback (most recent call last):
  File "flower102.py", line 11, in <module>
    train_dataset = Flowers(mode='train', transform=transform)
  File "/usr/local/lib/python3.8/dist-packages/paddle/vision/datasets/flowers.py", line 166, in __init__
    scio = try_import('scipy.io')
  File "/usr/local/lib/python3.8/dist-packages/paddle/utils/lazy_import.py", line 32, in try_import
    mod = importlib.import_module(module_name)
  File "/usr/lib/python3.8/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 783, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/usr/lib/python3/dist-packages/scipy/io/__init__.py", line 97, in <module>
    from .matlab import loadmat, savemat, whosmat, byteordercodes
  File "/usr/lib/python3/dist-packages/scipy/io/matlab/__init__.py", line 13, in <module>
    from .mio import loadmat, savemat, whosmat
  File "/usr/lib/python3/dist-packages/scipy/io/matlab/mio.py", line 11, in <module>
    from .mio4 import MatFile4Reader, MatFile4Writer
  File "/usr/lib/python3/dist-packages/scipy/io/matlab/mio4.py", line 11, in <module>
    import scipy.sparse
  File "/usr/lib/python3/dist-packages/scipy/sparse/__init__.py", line 229, in <module>
    from .base import *
  File "/usr/lib/python3/dist-packages/scipy/sparse/base.py", line 8, in <module>
    from .sputils import (isdense, isscalarlike, isintlike,
  File "/usr/lib/python3/dist-packages/scipy/sparse/sputils.py", line 16, in <module>
    supported_dtypes = [np.typeDict[x] for x in supported_dtypes]
  File "/usr/lib/python3/dist-packages/scipy/sparse/sputils.py", line 16, in <listcomp>
    supported_dtypes = [np.typeDict[x] for x in supported_dtypes]
  File "/usr/local/lib/python3.8/dist-packages/numpy/__init__.py", line 320, in __getattr__
    raise AttributeError("module {!r} has no attribute "
AttributeError: module 'numpy' has no attribute 'typeDict'

先不管这个了,至少mnist的例子可以过。

安装完kotti后报错 module 'sqlalchemy.ext.baked' has no attribute 'bake_lazy_loaders'

>>> import kotti
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.8/dist-packages/kotti/__init__.py", line 18, in <module>
    from kotti.sqla import Base as KottiBase
  File "/usr/local/lib/python3.8/dist-packages/kotti/sqla.py", line 17, in <module>
    baked.bake_lazy_loaders()
AttributeError: module 'sqlalchemy.ext.baked' has no attribute 'bake_lazy_loaders'

看sqlalchemy版本:pip show sqlalchemy

安装低版本: pip install sqlalchemy==1.4.42

好了,过了。

安装kotti_ai报错pyramid 2.0.2 is installed but pyramid<2,>=1.9 is required by {'Kotti'}

Installed /usr/lib/python3.8/site-packages/kotti_ai-0.0.2.dev0-py3.8.egg
Processing dependencies for kotti-ai==0.0.2.dev0
error: pyramid 2.0.2 is installed but pyramid<2,>=1.9 is required by {'Kotti'}

pip install pyramid==1.9解决,好吧,还是报这个错,就跟pyramid2已经深入骨子里一样。

在kotti_ai目录执行:

pip install -e ".[testing]"

总算把kotti_ai装上了。没装上,pserve development.ini 还是报错没有kotti_ai

最后是到/usr/lib/python3.8/site-packages/目录,把pyramid-2.0.2-py3.8.egg 目录删除,才搞定。

kotti_ai安装不上

python3 setup.py instlal 过,但是pserve development.ini 报错还是没有kotti_ai

pip show kotti_ai发现确实没有。

使用命令: python3 setup.py develop  --user

好像安装上了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/475466.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

多人命题系统|基于SSM框架+ Mysql+Java+ B/S结构的多人命题系统设计与实现(可运行源码+数据库+设计文档)

推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 2024年56套包含java&#xff0c;ssm&#xff0c;springboot的平台设计与实现项目系统开发资源&#xff08;可…

JavaSE:数据类型与变量

目录 一、前言 二、数据类型与变量 &#xff08;一&#xff09;字面常量 &#xff08;二&#xff09;数据类型 &#xff08;三&#xff09;变量 1.变量概念 2.语法格式 3.整型变量 3.1整型变量 3.2长整型变量 3.3短整型变量 3.4字节型变量 4.浮点型变量 4.1双精…

谷歌DeepMind推出SIMA智能体,可以跟人一起玩游戏

谷歌 DeepMind 推出了 SIMA&#xff0c;这是一种通过训练学习游戏技能的人工智能代理&#xff0c;因此它玩起来更像人类&#xff0c;而不是一个只做自己事情的强大人工智能。 从早期与 Atari 游戏合作&#xff0c;到以人类大师级别玩《星际争霸 II》的 AlphaStar 系统&#xf…

PyGWalker:Python中的Tableau,数据可视化变得如此简单!

文章目录 1介绍2 安装3 使用4 将数据可视化导出为代码5 总结 1介绍 在数据分析和可视化的领域&#xff0c;Tableau凭借其强大的功能和直观的界面&#xff0c;一直以来都是专业人士的首选工具。然而&#xff0c;对于许多用户而言&#xff0c;Tableau的封闭性和高昂的成本使其难…

leetcode刷题(javaScript)——BFS广度优先遍历相关场景题总结

广度优先搜索&#xff08;BFS&#xff09;在JavaScript编程中有许多实际应用场景&#xff0c;特别是在解决图、树等数据结构相关问题时非常常见。在JavaScript中&#xff0c;可以使用队列来实现广度优先搜索算法。通过将起始节点加入队列&#xff0c;然后迭代地将节点的邻居节点…

60 个深度学习教程:包含论文、实现和注释 | 开源日报 No.202

labmlai/annotated_deep_learning_paper_implementations Stars: 44.0k License: MIT annotated_deep_learning_paper_implementations 是一个包含深度学习论文的 60 个实现/教程&#xff0c;附带并排注释&#xff1b;包括 transformers&#xff08;原始、xl、switch、feedbac…

2023年五级区划省市县乡镇行政村社区边界数据

行政区划数据是重要的基础地理信息数据&#xff0c;根据国家统计局公布的数据&#xff0c;行政区划共分为五级&#xff0c;分别为省级、地级、县级、乡镇/街道级、村/社区级。 该套数据以2020-2023年国家基础地理信息数据中的县区划数据作为矢量基础&#xff0c;辅以高德行政区…

Leetcode 19. 删除链表的倒数第 N 个结点

题目描述&#xff1a; 给你一个链表&#xff0c;删除链表的倒数第 n 个结点&#xff0c;并且返回链表的头结点。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5], n 2 输出&#xff1a;[1,2,3,5] 示例 2&#xff1a; 输入&#xff1a;head [1], n 1 输出&#xf…

图论中的最小生成树:Kruskal与Prim算法深入解析

&#x1f3ac;慕斯主页&#xff1a;修仙—别有洞天 ♈️今日夜电波&#xff1a;アンビバレント—Uru 0:24━━━━━━️&#x1f49f;──────── 4:02 &#x1f504; ◀️ ⏸ ▶️ ☰ …

Linux第79步_使用自旋锁保护某个全局变量来实现“互斥访问”共享资源

自旋锁使用注意事项:自旋锁保护的“临界区”要尽可能的短。 因此&#xff0c;在open()函数中申请“spinlock_t自旋锁结构变量”&#xff0c;然后在release()函数中释放“spinlock_t自旋锁结构变量”&#xff0c;这种方法就行不通了。如果使用一个变量“dev_stats”来表示“共享…

【前端Vue】Vue3+Pinia小兔鲜电商项目第2篇:什么是pinia,1. 创建空Vue项目【附代码文档】

全套笔记资料代码移步&#xff1a; 前往gitee仓库查看 感兴趣的小伙伴可以自取哦&#xff0c;欢迎大家点赞转发~ 全套教程部分目录&#xff1a; 部分文件图片&#xff1a; 什么是pinia Pinia 是 Vue 的专属状态管理库&#xff0c;可以实现跨组件或页面共享状态&#xff0c;是…

javaSwing扫雷

一、介绍 1.1 背景 在1964年 有一个叫“方 块”的游戏&#xff0c;这是扫雷最原始的版本。后来&#xff0c;这个游戏被改成了另一种游戏&#xff0c;叫做“Rlogic”。在这个游戏中&#xff0c;玩家扮演了一名军队的军人&#xff0c;接受了一项艰难的任务&#xff1a;为指挥中…

Linux--gdb调试

一.安装gdb sudo apt install gdb 二.使用gdb 三.gdb的相关操作 gdb 可执行文件名 显示代码: l 加断点: b 行号 启动程序:r(运行之前一定要加断点) 查看断点信息: info break/info b 删除断点信息:delete 断点编号 单步执行:n 打印 :p 显示:display 变量名: 退出:q …

分布式系统的基本特性

一般&#xff0c;分布式系统需要支持以下特性&#xff1a; 资源共享 开放性 并发性 可伸缩性 容错性 透明性 下面分别讨论。 容易理解的 资源共享 一旦授权&#xff0c;可以访问环境中的任何资源。 资源&#xff1a;包括硬件(e.g. printer, scanner, camera)、软件&a…

8.2K star!史上最强Web应用防火墙

&#x1f6a9; 0x01 介绍 长亭雷池SafeLine是长亭科技耗时近 10 年倾情打造的WAF(Web Application Firewall)&#xff0c;一款敢打出口号 “不让黑客越雷池一步” 的 WAF&#xff0c;我愿称之为史上最强的一款Web应用防火墙&#xff0c;足够简单、足够好用、足够强的免费且开源…

详解main函数参数argc、argv及如何传参

目录 1、main()函数参数 2、main函数如何传参 2.1 环境准备 2.2 通过 Powershell 窗口传参 2.3 通过vs界面传参 3、int main() 和 int main(int argc, char *argv[]) 特点 1、main()函数参数 在C语言中&#xff0c;main函数可以带参数。main函数的原型通常为以下两种形式…

Linux本地部署TeslaMate结合内网穿透实现公网访问内网车辆信息

文章目录 1. Docker部署TeslaMate2. 本地访问TeslaMate3. Linux安装Cpolar4. 配置TeslaMate公网地址5. 远程访问TeslaMate6. 固定TeslaMate公网地址7. 固定地址访问TeslaMate TeslaMate是一个开源软件&#xff0c;可以通过连接特斯拉账号&#xff0c;记录行驶历史&#xff0c;统…

【网络原理】HTTP 请求 (Request)详解

文章目录 &#x1f38d;请求格式&#x1f384;认识URL&#x1f338;query string&#x1f338;关于 URL encode &#x1f340;认识 “方法” (method)&#x1f338;GET方法&#x1f338;POST 方法&#x1f338;GET 和 POST 的区别 &#x1f332;认识请求 “报头” (header)&…

揭秘3D大屏制作:轻松上手的必备工具清单!

轻轻松松做出3D可视化大屏&#xff0c;你需要知道这几样东西 3D可视化大屏一、3D可视化大屏介绍二、3D可视化应用领域三、3D可视化的技术四、3D可视化的制作平台五、总结 大家好&#xff0c;这里是程序猿代码之路。在如今信息以及数据爆炸的时代&#xff0c;如何有效地展示和解…

【算法】差分算法详解(模板)

类似于数学中的求导和积分之间的关系&#xff0c;差分可以看成前缀和的逆运算。 差分数组&#xff1a; 首先给定一个原数组a&#xff1a;a[1], a[2], a[3],,,,,, a[n]; 然后我们构造一个数组b &#xff1a; b[1] ,b[2] , b[3],,,,,, b[i]; 使得 a[i] b[1] b[2 ] b[3] ,,,…