python打包exe
pyinstaller example.py -F -p C://.../site-packages
打包出现问题:
Importing the multiarray numpy extension module failed. Most
解决:使用第二个方法:降低numpy版本成功(python37)
所以将两者都重新安装为适配版本就行,如下:
numpy==1.14.5
或者可以试试只将numpy版本降低
pip install numpy==1.14.5
打包出来的文件很大(主要是 anaconda 的问题,几百兆。。。),用virtualenv 创建环境。
-F 生成一个文件?
anaconda conda activate 和 virtualenv 会互相干扰?
virtualenv -p C:\Users\K\AppData\Loca l\Programs\Python\Python36\python.exe vir_1 --no-site-packages
virtualenv 目录不要包含中文。
打包后在其他电脑运行出现 :无法定位程序输入点 ucrtbase.terminate。
- pyinstaller 太旧
下载安装最新版本。pip install https://github.com/pyinstaller/pyinstaller/archive/develop.zip - 或者:python 太新,使用 python3.4 试试
VB 与 python 通信。
使用 com 参考
- python 注册组件
- (先安装 pypiwin32:
pip install pywin32或者pip install pypiwin32) - 需要 python 5 及以上, 64位的版本,32位会提示“运行时错误 ' .... '”
- excel-vba 的话, 软件是 64位 还是 32位 也会有影响吗?
# python 代码 import pythoncom class PythonUtilities: _public_methods = ['SplitString'] # 声明方法 _reg_progid_ = 'PythonDemos.Utilities' # Object名: CreateObject _reg_clsid_ = pythoncom.CreateGuid() def SplitString(self, val, item=None): # import string if item is not None: item = str(item) val = str(val) return val.split(item) if __name__ == '__main__': print('Registering COM server...') import win32com.server.register win32com.server.register.UseCommandLine(PythonUtilities)'vb代码 Sub AA() Set PythonUtils = CreateObject("PythonDemos.Utilities") response = PythonUtils.SplitString("Hello From VB") For Each Item In response MsgBox Item Next End Sub- 踩坑
- 不能有 init 事件?
- (先安装 pypiwin32:
- vb 使用组件
- python 注销组件
python 打包成 dll(未测试)
C#调用C++,C++调用Python并传参,包括C++向python传递图片数据,C++向python传递组数据,C++向python传递字符串数据,C++向python传递结构体数据,C++初始化python类数据并调用方法,实际案例,能直接运行,需要安装opencv和python,numpy库,实现C#控制台程序通过调用C++,、C++调用python文件动态生成数据获取返回值,并输出,

浙公网安备 33010602011771号