Win10 Anconda 环境下 Python 调用Julia进行优化求解联合编程环境配置

背景

Python在人工智能领域被广泛应用,但同一个项目一部分可能需要用到专用的数学优化计算求解,而Python在这类问题上缺少相应的包且计算速度受限。Julia作为新兴面向科学数学计算的语言,支持多种优化求解器,且计算速度相对较快,相关专用数学优化求解方法有可能已在Julia上实现。此时,完全放弃Python而改用Julia必然需要一定的时间进行学习,而直接在Python中调用成熟的Julia求解函数解决自己的问题会大大降低工作量。以下是在win10 + Anconda环境下实现Python调用Julia函数进行优化求解联合编程的环境配置方法

环境简介

  1. Windows 10 + Anconda (python 3.8)
  2. Julia 1.7.1
  3. PyJulia (关键)

Julia 安装

https://julialang.org/downloads/
国内:
https://cn.julialang.org/downloads/
下载最新版本(我的是1.7.1)可以跳过系统环境变量配置过程,之前的版本需要自行配置系统环境变量,否则Anconda环境无法找到Julia程序。安装完成后可在开始菜单找到Julia并启动终端

在这里插入图片描述

PyJulia 安装配置

在自己的Anconda Python 环境下,安装PyJulia。 参考:https://pyjulia.readthedocs.io/en/latest/installation.html

  1. 安装PyJulia
pip install julia
##离线方式,安装开发版本
$ git clone https://github.com/JuliaPy/pyjulia
$ cd pyjulia
$pip install
或
$pip install  -e .
  1. 安装PyJulia 所依赖的Julia包
    启动Anconda终端模式(conda activate env_name); 进入后,开启一个python REPL
>>> import julia
>>> julia.install()
  1. 测试
    在python 终端输入模式下导入Julia 包并运行简单计算程序,不报错并有正确的结果输出即安装成功
>>> from julia import Base
>>> from julia import Main
>>> Main.xs = [1, 2, 3]
>>> Main.eval("sin.(xs)")

Spyder 命令行终端执行结果:
在这里插入图片描述

在Python 程序中调用Julia函数程序

from julia import Main as self_Main        ##导入Julia 包 self_Main 是为了和Main函数区分开,可自己定义名称
self_Main.include("self_function.jl")      ##加载自己的Julia函数文件
call_back_str = "Opt_(Arg1, Arg2, Arg3)"   ##构建函数调用字符串,传递参数 
#↑ Opt_: self_function.jl文件中自己要调用的函数名, Arg1, Arg2, Arg3 为向函数传递的参数,整体要转化为一条字符串
out_1,out_2 = self_Main.eval(call_back_str)  ##传递参数并执行Julia 函数及返回结果

最后,根据自己需要解析输出结果。注意:Python调用Julia 函数文件时会执行整个文件非函数部分会自动执行,但不返回结果,程序执行过程中中间打印操作失效。Julia程序调试须在Julia终端中进行。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值