Tribon二次开发-py文件打包dll文件

文章声名:此文章参考了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.batsetup.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文件

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • """1.个性化消息: 将用户的姓名存到一个变量中,并向该用户显示一条消息。显示的消息应非常简单,如“Hello ...
    她即我命阅读 3,324评论 0 5
  • 为了让我有一个更快速、更精彩、更辉煌的成长,我将开始这段刻骨铭心的自我蜕变之旅!从今天开始,我将每天坚持阅...
    李薇帆阅读 1,973评论 0 3
  • 似乎最近一直都在路上,每次出来走的时候感受都会很不一样。 1、感恩一直遇到好心人,很幸运。在路上总是...
    时间里的花Lily阅读 1,418评论 0 2
  • 1、expected an indented block 冒号后面是要写上一定的内容的(新手容易遗忘这一点); 缩...
    庵下桃花仙阅读 555评论 0 1
  • 一、工具箱(多种工具共用一个快捷键的可同时按【Shift】加此快捷键选取)矩形、椭圆选框工具 【M】移动工具 【V...
    墨雅丫阅读 549评论 0 0