Loading

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 事件?
  • 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文件动态生成数据获取返回值,并输出,

posted @ 2025-03-12 22:20  一起滚月球  阅读(29)  评论(0)    收藏  举报