文章声名:此文章参考了Tribon二次开发-py文件打包dll文件_python 打包成dll-CSDN博客,在此基础上进行了操作的拓展,使其更加方便使用
一、将2.3.3版本的py文件编译成C语言文件
1、自己的主机上装一个VMware,并安装ubuntu-16.04版本的镜像文件
2、ubuntu中安装Python2.3
3、下载Cython包,Cython-0.15.1.tar.gz
4、控制台转到解压好的Cython-0.15.1目录路径,通过以下命令来安装Cython
python setup.py install
5、编写这样一个gen.py文件
import os
from Cython.Build import cythonize
import shutil
tmp_directory = os.path.join(os.getcwd(), "tmp_dir")
python_files = []
for root, dirs, files in os.walk(tmp_directory):
for file in files:
if file.endswith(".py"):
python_files.append(os.path.join(root, file))
cythonize(python_files)
6、在任意位置新建一个目录,名为c_file_gen
(或者取名其它,随意,但不能有中文和空格),在该目录下新建一个tmp_dir
目录,用于存放原始的要编译的.py文件,可以放多个py文件一起编译,目录结构如下
c_file_gen
--------gen.py
--------tmp_dir
----------------demo.py
----------------demo2.py
----------------demo3.py
----------------.....
7、控制台转到c_file_gen
目录,通过以下命令来编译tmp_dir
目录下所有的py文件
python gen.py
8、若无报错,tmp_dir文件夹下会新增与py文件同名的.c文件
c_file_gen
--------gen.py
--------tmp_dir
----------------demo.py
----------------demo2.py
----------------demo3.py
----------------demo.c
----------------demo2.c
----------------demo3.c
----------------.....
二、windows环境下将C文件和2.3.3版本的py文件一起打包成dll文件
1、安装VC++6.0环境,安装包.rar,(若使用的是win10/win11环境,将压缩包根目录的MSDEV.EXE文件替换安装路径的MSDEV.EXE文件即可),安装完成后,双击桌面的Visual C++ 6.0
快捷方式,验证能否正常打开
2、若第一步能正常打开,安装python2.3.3环境,安装完成后,运行以下cmd命令,若出现Python 2.3.3的输出信息,表示已经成功安装python环境
python -V
3、windows系统下载Cython包,Cython-0.15.1.tar.gz
4、windows控制台转到解压好的Cython-0.15.1目录路径,通过以下命令来安装Cython
python setup.py install
5、若前几步能正常走完,编写以下用于批量打包的setup.py
文件
from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext
import os
def get_py_files(directory):
extensions = []
for root, dirs, files in os.walk(directory):
for file in files:
if file.endswith('.py'):
py_file = str(os.path.join(root, file))
file_short = str(file).split('.')[0]
extensions.append(Extension(file_short, [".\\" + py_file]))
return extensions
extensions = get_py_files('tmp_dir')
setup(
cmdclass = {'build_ext': build_ext},
ext_modules = extensions
)
6、编写以下的用于批量打包的dll_gen.bat
批处理文件
python setup.py build_ext --inplace
rmdir tmp_dir /S /Q
rmdir build /S /Q
ren *.pyd *.dll
7、在任意位置新建一个目录,名为dll_file_gen
(或者取名其它,随意,但不能有中文和空格),将dll_gen.bat
、setup.py
文件、之前生成的tmp_dir
整个目录,复制到dll_file_gen
目录下,目录结构如下
dll_file_gen
--------dll_gen.bat
--------setup.py
--------tmp_dir
----------------demo.py
----------------demo2.py
----------------demo3.py
----------------demo.c
----------------demo2.c
----------------demo3.c
----------------.....
8、双击dll_gen.bat
,若无报错,dll_file_gen
目录会出现这些文件,而原先的tmp_dir
会自动删除
dll_file_gen
--------dll_gen.bat
--------setup.py
--------demo.dll
--------demo2.dll
--------demo3.dll
--------.....
9、在Tribon m3中原先怎么调demo.py文件,现在就怎么调demo.dll文件