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 pythoncomclass PythonUtilities:_public_methods = ['SplitString'] # 声明方法_reg_progid_ = 'PythonDemos.Utilities' # Object名: CreateObject_reg_clsid_ = pythoncom.CreateGuid()def SplitString(self, val, item=None):# import stringif item is not None:item = str(item)val = str(val)return val.split(item)if __name__ == '__main__':print('Registering COM server...')import win32com.server.registerwin32com.server.register.UseCommandLine(PythonUtilities)
'vb代码Sub AA()Set PythonUtils = CreateObject("PythonDemos.Utilities")response = PythonUtils.SplitString("Hello From VB")For Each Item In responseMsgBox ItemNextEnd Sub
- 踩坑
- 不能有 init 事件?
- (先安装 pypiwin32:
- vb 使用组件
- python 注销组件
python 打包成 dll(未测试)
手把手教你将Python程序打包为DLL
C++调用Python并传参
C#调用C++,C++调用Python并传参,包括C++向python传递图片数据,C++向python传递组数据,C++向python传递字符串数据,C++向python传递结构体数据,C++初始化python类数据并调用方法,实际案例,能直接运行,需要安装opencv和python,numpy库,实现C#控制台程序通过调用C++,、C++调用python文件动态生成数据获取返回值,并输出,