|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
背景: 我想用python编写一个com组件,然后在vbs中调用.
文件: PyHello.py文件
- class PyHello(object):
- def __init__(self):
- pass
- def SayHello(self):
- return 'Hello Python!'
- def DoAdd(self, a, b):
- return a + b
- class _WrapPyHello(PyHello):
- import pythoncom
- # _reg_clsid_ = '{4ae5ed1d-c378-4da1-9816-5a038112dlksdjfasio}'
- _reg_clsid_ = pythoncom.CreateGuid()
- _reg_progid_ = "Python.PyHello"
- _public_methods_ = ['SayHello','DoAdd']
- if __name__=='__main__':
- import win32com.server.register
- win32com.server.register.UseCommandLine(_WrapPyHello)
复制代码
setup.py文件
- from distutils.core import setup
- import py2exe
- setup(com_server=["PyHello"],
- zipfile = None,
- options = {
- 'py2exe' : {
- "bundle_files": 1,
- "dll_excludes": ["MSVCP90.dll","w9xpopen.exe"]
- }
- }
- )
复制代码
如果直接运行 PyHello.py 之后,其实已经注册好了,已经可以用VBS调用了
VBS 代码:
- Set inst = CreateObject("Python.PyHello")
- MsgBox "1111"
- MsgBox inst.SayHello()
- 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个鱼币,大家帮帮忙吧.....
|
|