不想源码“裸奔”?简单几步把 Abaqus 脚本打包成 pyc 给别人用
经常有朋友问,自己辛辛苦苦写了个 Abaqus 的 Python 脚本(比如自动建模或者后处理的),想发给同事或者甲方用,但又不太想直接把
.py源码发过去。 一来是怕别人不小心改坏了代码跑不通,二来,毕竟是自己的劳动成果,直接把核心逻辑“裸奔”发出去,心里总归有点别扭。其实不用搞那些复杂的加密软件,Abaqus 自带的 Python 环境就能生成
.pyc文件。这玩意儿别人能直接运行,但用记事本打开是乱码,一般的防窥探足够用了。本文简单记录一下操作步骤,备忘。
1. 准备工作
假设脚本名字叫 NodeSetCreator.py(就是想发给别人的那个脚本),这个脚本也可参考我之前的公众号文章【ABAQUS 的 python 脚本】Abaqus实用小插件开发:基于坐标创建节点集(改进版本),我只是把内核函数拿出来完善了一下。
先在同一个文件夹里,新建一个文本文件,名字随便取,比如叫 build.py,把下面这点代码粘进去:
import py_compileprint("Compiling NodeSetCreator.py...")# 这里填你要编译的文件名py_compile.compile('NodeSetCreator.py')print("Done. Please check for NodeSetCreator.pyc")
就是利用 Abaqus 自带的库编译一下。
2. 开始编译
这一步要注意,别直接双击那个 build.py,也别用自己电脑装的 Python 跑。一定要用 Abaqus 的 Python 来跑,这样才能保证兼容性。
操作方法:
-
在文件夹里按住 Shift键,点击鼠标右键,选“在此处打开 Powershell 窗口”或者“打开命令提示符”。 -
输入下面这行命令,回车:
abaqus python build.py
如果不报错,界面上会提示 “Done”。
3. 找文件(这里有个坑)
运行完之后,你要找生成的 .pyc 文件。这里不同版本的 Abaqus 有点区别,容易找不到:
- 老版本(比如 2016-2022): 一般就在当前文件夹里,你会看到一个
NodeSetCreator.pyc
。 - 新版本(比如 2023、2024): Abaqus 换了 Python 3 之后,编译出来的文件可能会藏在一个叫
__pycache__
的文件夹里。 点进去,会看到一个类似 NodeSetCreator.cpython-310.pyc的文件。
4. 怎么发给别人?
把生成的那个 .pyc 文件拿出来。 如果是新版本生成的,记得把文件名中间那一串 cpython-xxx 删掉,**改回 NodeSetCreator.pyc**。
然后直接把这个 .pyc 文件发给别人就行了。源码 .py 自己留着备份,别发错了。
别人怎么用? 和以前一模一样。 在 Abaqus 里点 File ->Run Script,文件类型选“所有文件”或者“Compiled Python Files”,选中你发的 .pyc 就能跑了。打开.pyc文件: 
使用效果如下 
小结
这个方法防不了大神反编译,避免手误修改源码是绝对够用的。主要胜在方便,不用装第三方环境,Abaqus 原生支持。
夜雨聆风
