当前位置: 首页 > news >正文

linux系统安装anaconda,并通过java程序调用python程序

虚拟环境准备

  1. 首先准备一块空的分区,安装anaconda至少要20g以上才能执行简单程序,这里准备20G的磁盘空间
    在这里插入图片描述
  2. 创建分区,执行以下步骤,之后执行reboot重启
fdisk /dev/sda
p
n
回车
回车
w
  1. 查看当前系统创建的分区,我这里是名为sda3的分区,后面操作根据实际分区操作

在这里插入图片描述

  1. 初始化分区 sda3换成你实际的分区名
mkfs.ext4 /dev/sda3
  1. 创建一个新的目录
mkdir /python

5.将新分区挂载到 /python目录上

mount /dev/sda3 /python

anaconda环境准备

#下载linux版本的anaconda,我这里安装anaconda3.7
wget https://repo.anaconda.com/archive/Anaconda3-2023.07-2-Linux-x86_64.sh
#下载完成后,给安装包执行权限
chmod +x Anaconda3-2023.07-2-Linux-x86_64.sh
#执行下面命令安装包安装,一直按回车,直到出现yes/no的选择,输入yes回车,当出现选择安装目录的时候,输入/python/anaconda3
./Anaconda3-2023.07-2-Linux-x86_64.sh
#给anaconda配置环境
vim /etc/profile
#在文件最后,按下a键,然后输入export PATH=/python/anaconda3/bin:$PATH,然后按esc在输入:wq保存退出
#执行source /etc/profile使配置文件生效
#进入python
cd /python
#创建一个虚拟环境
conda create -n pytorch python=3.9
#激活虚拟环境,并初始化
conda activate pytorch
conda init
source /root/.bashrc

创建项目

#创建项目目录
mkdir myproject1
#安装自己需要的库,我这里安装以下几个库
pip install torch
pip install pyinstaller
#java环境这里就不配置了,比较简单,请自行配置好,我这里使java1.8版本

在当前目录添加一张图片名字为1.jpg,任意一张图片即可,以下截图中圈出来的是本文章所需的
在这里插入图片描述
PythonCaller.java程序如下

import java.io.*;
import java.nio.file.Files;
import java.nio.file.Paths;public class PythonCaller{public static void main(String[] args) {Process process = null;try {// 读取图片文件到字节数组byte[] imageBytes = Files.readAllBytes(Paths.get("1.jpg"));// 启动 Python 脚本进程ProcessBuilder builder = new ProcessBuilder("python", "test.py");process = builder.start();// 获取进程的输入流,并写入图片字节try (OutputStream stdin = process.getOutputStream()) {stdin.write(imageBytes);stdin.flush();}// 读取 Python 脚本的输出try (BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()))) {String line;while ((line = reader.readLine()) != null) {System.out.println("Output from Python: " + line);}}// 等待进程结束int exitCode = process.waitFor();System.out.println("Exited with code: " + exitCode);} catch (IOException e) {e.printStackTrace();} catch (InterruptedException e) {e.printStackTrace();Thread.currentThread().interrupt(); // 重置中断状态} finally {if (process != null) {process.destroy();}}}
}

test.py程序如下:

import sys
import io
from PIL import Imagedef process_image():# 从标准输入读取字节流image_bytes = sys.stdin.buffer.read()if image_bytes:# 将字节流转换为图片image = Image.open(io.BytesIO(image_bytes))# 输出图片尺寸print(f"Image size: {image.size}")else:print("No data received")if __name__ == "__main__":process_image()

添加好之后执行以下命令

javac PythonCaller.java
java PythonCaller

结果如下:
在这里插入图片描述

本文章,提供一个通过现有java项目调用python程序的方法,我这里是准备完成的是通过先用的java项目,调用训练好的图像识别模型,然后将处理好的结果返回到java项目中展示

相关文章:

linux系统安装anaconda,并通过java程序调用python程序

虚拟环境准备 首先准备一块空的分区,安装anaconda至少要20g以上才能执行简单程序,这里准备20G的磁盘空间 创建分区,执行以下步骤,之后执行reboot重启 fdisk /dev/sda p n 回车 回车 w查看当前系统创建的分区,我这里是名为sda3的…...

Stable diffusion的SDXL模型,针不错!(含实操)

与之前的SD1.5大模型不同,这次的SDXL在架构上采用了“两步走”的生图方式: 以往SD1.5大模型,生成步骤为 Prompt → Base → Image,比较简单直接;而这次的SDXL大模型则是在中间加了一步 Refiner。Refiner的作用是什么呢…...

wordpress轻量免费主题

WordPress建站公司 适合提供WordPress建站服务的公司或个体(个人)工作室使用的WordPress建站公司主题模板。 https://www.jianzhanpress.com/?p545 首屏大图红色简洁wordpress主题 首屏大图红色简洁wordpress主题,非常地高端大气上档次,可用于多个行…...

Go AfterFunc 不触发

前言 函数原型为: func AfterFunc(d Duration, f func()) *TimerGo 的 time.AfterFunc 的作用是等待指定的时间间隔,然后在它自己的 goroutine 中调用 f。 现在有一个问题,我明明调用了 AfterFunc,但是它还没调用我指定的函数&…...

小程序视图渲染数据和部分事件的绑定

今天依旧使用这个目录进行教学 数据的渲染 在 index.js的 page中定义一个data对象结构是这样的 Page({data:{name:张三} }) 在index.wxml 中 利用模板语法进行渲染 <view >{{name}}</view> 注意这个模板里边不能使用js的方法 要循环渲染数组&#xff0c;如 在…...

“探索AIGC市场:腾讯元宝APP加入竞争,大模型产品的未来走向与个人选择“

文章目录 每日一句正能量前言使用体验分享独特优势和倾向选择字节豆包百度文心一言阿里通义千问腾讯元宝个人倾向选择结论 未来发展方向技术创新可持续可拓展性用户体验应用场景政府赋能数据安全与隐私保护伦理与社会责任国际合作与竞争结论 后记 每日一句正能量 不管现在有多么…...

node设置镜像源详细教程

在Node.js环境中&#xff0c;你可以通过设置npm或yarn的镜像源来加速依赖包的下载。以下是如何设置npm和yarn的镜像源的详细步骤&#xff1a; 使用npm设置镜像源 临时设置镜像源&#xff1a; 你可以在安装包时临时指定镜像源&#xff0c;例如&#xff1a; npm install package…...

四季变换,制氮机使用注意事项

随着四季的轮回变换&#xff0c;大自然展现着不同的风貌。对于制氮机而言&#xff0c;季节的变换同样会带来不同的使用挑战和注意事项。本文将为您揭示四季变换对制氮机使用的影响&#xff0c;帮助您更好地掌握制氮机的季节使用须知。 春季 温湿度变化&#xff1a;春季温湿度逐…...

如何实现办公终端安全

在网络安全日益严峻的当下&#xff0c;可信白名单作为一种高效的终端安全防护手段&#xff0c;正在逐渐受到业界的广泛关注和应用。本文将简要探讨可信白名单如何实现终端安全的原理、方法及其在实际应用中的优势与挑战。 首先&#xff0c;我们需要了解可信白名单的基本原理。可…...

【云岚到家】-day01-项目熟悉-查询区域服务开发

文章目录 1 云岚家政项目概述1.1 简介1.2 项目业务流程1.3 项目业务模块1.4 项目架构及技术栈1.5 学习后掌握能力 2 熟悉项目2.1 熟悉需求2.2 熟悉设计2.2.1 表结构2.2.2 熟悉工程结构2.2.3 jzo2o-foundations2.2.3.1 工程结构2.2.3.2 接口测试 3 开发区域服务模块3.1 流程分析…...

Docker面试整理-如何进行Docker镜像的构建和发布?

构建和发布 Docker 镜像是 Docker 使用中的一个常见任务,通常涉及编写 Dockerfile、构建镜像以及将其推送到镜像仓库的过程。以下是构建和发布 Docker 镜像的详细步骤: 1. 编写 Dockerfile 首先,你需要创建一个 Dockerfile,这是一个包含了一系列指令的文本文件,用来告诉 D…...

macOS Sequoia 将 Mac 生产力与智能化提升至全新高度 (macOS 15 ISO、IPSW、PKG 下载)

macOS Sequoia 将 Mac 生产力与智能化提升至全新高度 (macOS 15 ISO、IPSW、PKG 下载) iPhone 镜像、Safari 浏览器重大更新、备受瞩目的游戏和 Apple Intelligence 等众多全新功能令 Mac 使用体验再升级 请访问原文链接&#xff1a;https://sysin.org/blog/macOS-Sequoia/&a…...

用户管理与服务器远程管理

用户管理 服务器系统版本介绍 windows服务器系统&#xff1a;win2000 win2003 win2008 win2012 linux服务器系统&#xff1a;Redhat Centos 用户管理 用户概述 &#xff08;1&#xff09;每一个用户登录系统后&#xff0c;拥有不同的操作权限。 &#xff08;2&#xff09;…...

Pytorch 实现简单的 线性回归 算法

Pytorch实现简单的线性回归算法 简单 tensor的运算 Pytorch涉及的基本数据类型是tensor&#xff08;张量&#xff09;和Autograd&#xff08;自动微分变量&#xff09; import torch x torch.rand(5, 3) #产生一个5*3的tensor&#xff0c;在 [0,1) 之间随机取值 y torch.o…...

Django中配置日志

在Django中配置日志的方法非常简单&#xff0c;只需要在 setting 文件中添加配置项&#xff0c;系统会自动生成相应的日志文件&#xff0c;也可以配置调试时显示内容&#xff0c;报错发送邮件等操作。 在setting.py中添加以下配置。 # 日志配置 LOGS_DIRS os.path.join(BASE…...

海外盲盒小程序背后的技术支撑与实现

海外盲盒小程序之所以能够迅速崛起并受到全球消费者的喜爱&#xff0c;除了其独特的商业模式和营销策略外&#xff0c;更重要的是其背后的技术支撑和实现。本文将深入探讨海外盲盒小程序背后的技术支撑及其实现方式。 一、多语言与本地化技术 为了满足全球不同地区消费者的需…...

vue问题记录

vue3 路由跳转携带参数 路由跳转携带参数 query方法 //跳转传参 this.$router.push({path:/home,query: {id:1}}) //接受参数 this.$route.query.id问题&#xff1a;刷新页面&#xff0c;参数会丢失—未解决 将参数存在本地存储中&#xff0c;但是组件销毁时&#xff0c;清…...

Flutter - Material3适配

demo 地址: https://github.com/iotjin/jh_flutter_demo 代码不定时更新&#xff0c;请前往github查看最新代码 Flutter - Material3适配 对比图具体实现一些组件的变化 代码实现Material2的ThemeDataMaterial3的ThemeData Material3适配官方文档 flutter SDK升级到3.16.0之后 …...

一个有趣的c++案例

1. 源码 #include <stdio.h> #include <stdint.h> #include <iostream>using namespace std;uint8_t a 0; uint8_t b 0;#define MY_LOG#ifdef MY_LOG#define my_log(...) printf(__VA_ARGS__); fflush(stdout)#else #define my_log(...) #endifvoid …...

【python】OpenCV—Background Estimation(15)

文章目录 中值滤波中值滤波得到图像背景移动侦测 学习来自 OpenCV基础&#xff08;14&#xff09;OpenCV在视频中的简单背景估计 中值滤波 中值滤波是一种非线性平滑技术&#xff0c;主要用于数字信号处理&#xff0c;特别是在图像处理中去除噪声。 一、定义与原理 定义&am…...

Python|GIF 解析与构建(5):手搓截屏和帧率控制

目录 Python&#xff5c;GIF 解析与构建&#xff08;5&#xff09;&#xff1a;手搓截屏和帧率控制 一、引言 二、技术实现&#xff1a;手搓截屏模块 2.1 核心原理 2.2 代码解析&#xff1a;ScreenshotData类 2.2.1 截图函数&#xff1a;capture_screen 三、技术实现&…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

STM32+rt-thread判断是否联网

一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...

可靠性+灵活性:电力载波技术在楼宇自控中的核心价值

可靠性灵活性&#xff1a;电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中&#xff0c;电力载波技术&#xff08;PLC&#xff09;凭借其独特的优势&#xff0c;正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据&#xff0c;无需额外布…...

CentOS下的分布式内存计算Spark环境部署

一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架&#xff0c;相比 MapReduce 具有以下核心优势&#xff1a; 内存计算&#xff1a;数据可常驻内存&#xff0c;迭代计算性能提升 10-100 倍&#xff08;文档段落&#xff1a;3-79…...

工程地质软件市场:发展现状、趋势与策略建议

一、引言 在工程建设领域&#xff0c;准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具&#xff0c;正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...

《基于Apache Flink的流处理》笔记

思维导图 1-3 章 4-7章 8-11 章 参考资料 源码&#xff1a; https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...

【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)

1.获取 authorizationCode&#xff1a; 2.利用 authorizationCode 获取 accessToken&#xff1a;文档中心 3.获取手机&#xff1a;文档中心 4.获取昵称头像&#xff1a;文档中心 首先创建 request 若要获取手机号&#xff0c;scope必填 phone&#xff0c;permissions 必填 …...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)

本期内容并不是很难&#xff0c;相信大家会学的很愉快&#xff0c;当然对于有后端基础的朋友来说&#xff0c;本期内容更加容易了解&#xff0c;当然没有基础的也别担心&#xff0c;本期内容会详细解释有关内容 本期用到的软件&#xff1a;yakit&#xff08;因为经过之前好多期…...

USB Over IP专用硬件的5个特点

USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中&#xff0c;从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备&#xff08;如专用硬件设备&#xff09;&#xff0c;从而消除了直接物理连接的需要。USB over IP的…...