当前位置: 首页 > 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项目中展示

http://www.lryc.cn/news/370098.html

相关文章:

  • Stable diffusion的SDXL模型,针不错!(含实操)
  • wordpress轻量免费主题
  • Go AfterFunc 不触发
  • 小程序视图渲染数据和部分事件的绑定
  • “探索AIGC市场:腾讯元宝APP加入竞争,大模型产品的未来走向与个人选择“
  • node设置镜像源详细教程
  • 四季变换,制氮机使用注意事项
  • 如何实现办公终端安全
  • 【云岚到家】-day01-项目熟悉-查询区域服务开发
  • Docker面试整理-如何进行Docker镜像的构建和发布?
  • macOS Sequoia 将 Mac 生产力与智能化提升至全新高度 (macOS 15 ISO、IPSW、PKG 下载)
  • 用户管理与服务器远程管理
  • Pytorch 实现简单的 线性回归 算法
  • Django中配置日志
  • 海外盲盒小程序背后的技术支撑与实现
  • vue问题记录
  • Flutter - Material3适配
  • 一个有趣的c++案例
  • 【python】OpenCV—Background Estimation(15)
  • 【Java毕业设计】基于JavaWeb的旅游论坛管理系统
  • 讲一下v-model的底层实现原理?
  • 大模型基础——从零实现一个Transformer(3)
  • 一二三应用开发平台应用开发示例——概述、应用开发示例简介及创建前后端模块
  • springboot+minio+kkfileview实现文件的在线预览
  • HTML5+CSS3小实例:粘性文字的滚动效果
  • Java 关于抽象 -- Java 语言的抽象类、接口和函数式接口
  • 用 Notepad++ 写 Java 程序
  • malloc brk mmap
  • java多线程相关概念
  • 【html】简单网页模板源码