python程序封装

python程序封装1

报错请执行pip install --upgrade setuptools 和 pip install --upgrade wheel

步骤如下:
(1)安装pyinstaller,可以直接在cmd命令行中,输入命令“pip install pyinstaller”,安装pyinstaller

(2)进入py代码的保存目录,这里py代码放在“E:\python学习\python_work”

(3)cmd,输入命令:e:,进入e盘

(4)继续输入:E:\python学习\python_work,进入目录:python_work

(5)执行命令:pyinstaller -F m3u8转mp4工具.py

(6)执行成功后,会保存在相同目录下的文件“dist”中,可以将exe文件复制出来后,删除其他自动生成的文件
在这里插入图片描述
在这里插入图片描述

如果需要修改程序图标,可以加“-i xx.ico"
例如:
执行命令:pyinstaller -i 2.ico -F m3u8转mp4工具.py

python程序封装2

提示: 以下的教程都是再有Python环境的基础上的,如果没有安装,请先参考:Python安装以及环境变量配置
一、安装pyinsatller
打开命令行窗口,输入如下指令
pip3 install pyinstaller
然后静待pyinstaller自动安装好
二、使用pyinstaller打包Python程序
①在你的Python程序文件夹上(不点进去)按住shift并且右键,在弹出的选项中点击"在此处打开命令行窗口"或者“在此处打开PowerShell窗口”
在这里插入图片描述

或者先进入命令行窗口,然后使用cd指令进入程序文件夹,示例:
cd G:\工程储存\Python工程\love
②输入以下指令,开始打包
pyinstaller -F -w (-i icofile) filename
filename表示你的Python程序文件名
-w 表示隐藏程序运行时的命令行窗口(不加-w会有黑色窗口)
括号内的为可选参数,-i icofile表示给程序加上图标,图标必须为.ico格式
icofile表示图标的位置,建议直接放在程序文件夹里面,这样子打包的时候直接写文件名就好
输入完成,按回车,就会开始自动打包了,第一次打包过程可能比较缓慢
输入示例:
pyinstaller -F -w -i favicon love.py
然后我们进入到程序目录里面会再看到一个名称为dist目录,打包好的exe程序就在里面

通用打包格式

pyinstaller -F 文件名

在这里插入图片描述

注意:如果原本的程序中使用到了相应的资源,需要复制到该目录下,否则程序会无法运行
比如我这里在程序中使用到了love.png这个图,所以就需要将该文件放到dist目录下

  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将 Python 程序封装成 DLL,可以使用 Python 的 C API 和 Windows 的 DLL 功能。具体来说,可以按照以下步骤进行操作: 1. 在 C++ 代码中包含 Python.h 头文件。 2. 使用 Py_Initialize() 函数初始化 Python 解释器。 3. 使用 PyRun_SimpleString() 函数或 PyRun_File() 函数执行 Python 代码。 4. 将 Python 代码封装成 DLL。 以下是一个简单的例子,演示如何将 Python 程序封装成 DLL: ```c++ #include <Python.h> #include <Windows.h> // Python 代码 const char* python_code = "def add(a, b):\n return a + b\n"; // DLL 入口函数 BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) { switch (ul_reason_for_call) { case DLL_PROCESS_ATTACH: // 初始化 Python 解释器 Py_Initialize(); // 执行 Python 代码 PyRun_SimpleString(python_code); break; case DLL_THREAD_ATTACH: case DLL_THREAD_DETACH: break; case DLL_PROCESS_DETACH: // 关闭 Python 解释器 Py_Finalize(); break; } return TRUE; } // 封装的函数 __declspec(dllexport) int add(int a, int b) { PyObject* pName = PyUnicode_DecodeFSDefault("__main__"); PyObject* pModule = PyImport_Import(pName); Py_DECREF(pName); if (pModule != NULL) { PyObject* pFunc = PyObject_GetAttrString(pModule, "add"); if (pFunc && PyCallable_Check(pFunc)) { PyObject* pArgs = PyTuple_New(2); PyTuple_SetItem(pArgs, 0, PyLong_FromLong(a)); PyTuple_SetItem(pArgs, 1, PyLong_FromLong(b)); PyObject* pResult = PyObject_CallObject(pFunc, pArgs); Py_DECREF(pArgs); if (pResult != NULL) { int result = (int)PyLong_AsLong(pResult); Py_DECREF(pResult); return result; } else { Py_DECREF(pFunc); Py_DECREF(pModule); PyErr_Print(); return -1; } } else { if (PyErr_Occurred()) PyErr_Print(); return -1; } } else { PyErr_Print(); return -1; } } ``` 在上面的例子中,我们使用 Py_Initialize() 函数初始化 Python 解释器,使用 PyRun_SimpleString() 函数执行 Python 代码,然后将 Python 代码封装成 DLL。我们定义了一个 add() 函数,该函数调用了 Python 程序中的 add() 函数,实现了两个整数相加的功能。 要使用该 DLL,可以在 C++ 代码中使用 LoadLibrary() 函数加载该 DLL,然后使用 GetProcAddress() 函数获取 add() 函数的地址,并调用该函数即可。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值