前言

这两天一直在研究给MWORKS.Syslab配环境的问题,我们知道Syslab虽然支持python语言,但其内建的Python3.7环境并不完整,没有办法完全榨干python的功能,所以自行创建一个Python环境是有必要的。由于网上资料较少,故将以安装Pytorch为例为大家演示如何在Windows上给Syslab配环境。

我的前置条件为:

  • 操作系统:Windows 11
  • 软件版本:MWORKS.Syslab 0.11.2.11031 (教育版)

另外,Linux版的教程请移步我的另一篇文章:

在Linux上部署用户指定的Python环境到MWORKS.Syslab

一、安装miniforge3

注意,虽然miniforge3与Anaconda和Miniconda兼容,但并不推荐使用后面二者,原因待会儿就明白了。

首先,我们下载miniforge3的安装包。

下载地址:https://github.com/conda-forge/miniforge

安装完成后我们在任务栏搜索Miniforge Prompt打开。

输入conda init完成初始化,之后会提醒你关闭控制台使改变生效。

再次打开,输入conda install python=3.9.7,将其自带的Python3.11替换为低版本,以适配Syslab的要求。

二、安装Pytorch

首先在cmd窗口自查CUDA版本,win+R,搜索“cmd”打开,输入nvidia-smi,回车。

接下来去官网查询安装指令,结合Python、CUDA的版本和需求选择合适的指令,如果电脑没有N卡,选择带有# CPU Only注释的指令即可。

Pytorch历史版本安装指令查询:https://pytorch.org/get-started/previous-versions/

我的指令如下:

# CUDA 11.8
conda install pytorch==2.0.0 torchvision==0.15.0 torchaudio==2.0.0 pytorch-cuda=11.8 -c pytorch -c nvidia

查询到指令后,在cmd窗口输入conda activate base跳转到miniforge环境,执行上述命令,等待安装。如果提示安装失败记得检查自己安装路径是否需要管理员权限(miniforge的默认安装路径为c盘)。至此,在之后的步骤中,每次打开命令行窗口,都要检查是否处于miniforge环境(检查对话框最开头有没有"(base)"字样),否则你可能将环境配置到错误的Python版本(如果你装过Python的话)。

安装进程结束后,输入python,接着输入import torch,等待几秒钟没有报错即为安装成功。

就像这样:

三、安装Python依赖库

Pytorch安装完成,接下来继续配置Syslab要用到的依赖库。

这一步按照官方文档里的步骤进行。

Syslab使用手册:https://www.tongyuan.cc/docs/syslab/Help/index.html#/Doc/Syslab/ExternalInterface/PythonCallJulia.html#_3-使用用户指定的-python-环境

如果配置无误,可以像文档里展示的那样在命令行窗口跑通示例代码。

四、在Syslab上运行

这是最令我头疼的一步,因为我发现在Syslab里切换环境后,刚刚流畅运行的代码居然跑不通了。报错信息如下:

No module named '_TySignalProcessing'

ModuleNotFoundError: No module named 'numpy.core._multiarray_umath'

ImportError: 
Please note and check the following:

  * The Python version is: Python3.9 from "C:\Users\TR\.conda\envs\myenv\python.exe"
  * The NumPy version is: "1.21.6"

大致意思是说numpy这个库的版本不支持当前python版本。miniforge的python环境内numpy版本为1.22.4,这里显示的"1.21.6"经查仍然是syslab内部环境的版本,没有和切换python编译器保持同步。

我的第一反应是系统环境变量的问题,但重新修改环境变量后问题依旧。

我也尝试过直接更新Syslab内部Python和numpy版本,但这种操作似乎因为缺少某些文件而不被允许。

令我没有想到的是,最后的解决方案意外地简单:

首先找到作妖的那个内建Python环境,在Syslab界面,依次点击:左下角Python版本->屏幕上方项目名称,然后可以查看当前Python解释器的具体路径。

我们的目标是找到那个~/.julia/miniforge3文件夹的位置。

找到以后,重命名为"miniforge3_old"

再找到你自己的miniforge3目录,复制,粘贴到.julia

最后在Syslab里重新选择Python解释器,测试代码,可以看到修改后的示例代码正常运行且能调用Pytorch,环境部署成功~

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐