鱼C论坛

 找回密码
 立即注册
查看: 1361|回复: 8

python 编写com组件

[复制链接]
发表于 2018-6-21 10:13:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
背景: 我想用python编写一个com组件,然后在vbs中调用.

文件: PyHello.py文件

  1. class PyHello(object):
  2.     def __init__(self):
  3.         pass

  4.     def SayHello(self):
  5.         return 'Hello Python!'

  6.     def DoAdd(self, a, b):
  7.         return a + b
  8. class _WrapPyHello(PyHello):
  9.     import pythoncom
  10.     # _reg_clsid_ = '{4ae5ed1d-c378-4da1-9816-5a038112dlksdjfasio}'
  11.     _reg_clsid_ = pythoncom.CreateGuid()
  12.     _reg_progid_ = "Python.PyHello"
  13.     _public_methods_ = ['SayHello','DoAdd']


  14. if __name__=='__main__':
  15.     import win32com.server.register
  16.     win32com.server.register.UseCommandLine(_WrapPyHello)
复制代码



setup.py文件

  1. from distutils.core import setup
  2. import py2exe


  3. setup(com_server=["PyHello"],
  4.       zipfile = None,
  5.       options = {
  6.                     'py2exe' : {
  7.                         "bundle_files": 1,
  8.                        "dll_excludes": ["MSVCP90.dll","w9xpopen.exe"]
  9.                     }
  10.                 }
  11. )
复制代码


如果直接运行  PyHello.py  之后,其实已经注册好了,已经可以用VBS调用了

VBS 代码:
  1. Set inst = CreateObject("Python.PyHello")
  2. MsgBox "1111"
  3. MsgBox inst.SayHello()
  4. MsgBox inst.DoAdd(1,3)
复制代码



现在的问题是,怎么把PyHello.py这个文件编译成dll, 然后在VBS中不依赖python的环境使用.

参考资料:
https://zhuanlan.zhihu.com/p/22023698?refer=python-dev
用这个帖子中的方法,我没有成功

其它资料:
https://www.oschina.net/code/snippet_91334_19994
https://blog.csdn.net/qiaokelinaicha/article/details/68921470
https://blog.csdn.net/DarkChampion/article/details/4420139

困扰好久了, 哪位大神熟悉python,请帮帮忙.


我只有16个鱼币,大家帮帮忙吧.....

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-6-21 10:57:55 | 显示全部楼层

回帖奖励 +1 鱼币

这个东西没整过,不过我觉得python即使整出来这个dll也必定有好几十M,因为要打包其解释环境,真不如C、delphi之类
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-21 15:54:18 | 显示全部楼层

回帖奖励 +1 鱼币

还没学到
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-21 17:01:48 | 显示全部楼层

回帖奖励 +1 鱼币

没学过
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-22 00:40:06 | 显示全部楼层
还没学到
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-22 09:25:46 | 显示全部楼层

回帖奖励 +1 鱼币

需要小甲鱼来支持!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-6-24 12:04:24 | 显示全部楼层
没有人知道吗?....
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-25 09:21:04 | 显示全部楼层
不懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-7-12 22:38:04 | 显示全部楼层

回帖奖励 +1 鱼币

不懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-24 17:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表