如何通过Python脚本获取已安装的Julia版本号
Python脚本获取Julia版本的实现方案
直接执行os.system('julia')卡住的原因很明确:该命令会启动Julia交互式REPL环境,进程会持续等待用户输入指令,不会自动退出,自然无法返回版本结果。
核心解决思路是让Julia启动后直接执行版本查询逻辑,执行完成后自动退出,无需进入交互环节,以下是可直接运行的实现方式:
方案一:通过Julia -e 执行参数直接获取(推荐)
Julia命令行原生支持-e参数,可直接接收传入的代码字符串执行,执行完毕后自动退出进程,不会进入交互模式。配合Python标准库subprocess捕获标准输出,就能直接拿到干净的版本值:
import subprocess def fetch_julia_version(): exec_result = subprocess.run( ["julia", "-e", "print(VERSION)"], capture_output=True, text=True, check=True ) return exec_result.stdout.strip() if __name__ == "__main__": current_version = fetch_julia_version() print(f"检测到Julia版本:{current_version}")
运行上述代码不会进入Julia交互环境,会直接输出版本号,对应你本地环境的返回值就是1.0.3。
方案二:从Julia启动Banner提取版本
如果不想传入额外执行语句,也可以让Julia启动后立刻退出,从它启动时打印的欢迎文本中正则匹配版本号:
import subprocess import re def fetch_julia_version_from_banner(): exec_result = subprocess.run( ["julia", "-e", "exit()"], capture_output=True, text=True ) version_match = re.search(r"Version\s+([\d.]+)", exec_result.stderr) return version_match.group(1) if version_match else None
实现提示:不建议用
os.system处理需要获取输出的命令行调用,该函数仅能返回进程退出码,无法捕获命令打印的文本内容,这类场景优先使用subprocess模块。
内容的提问来源于stack exchange,提问作者Alberto J Lorenzo Rosario
相关产品推荐
相关产品推荐

