编译Python脚本生成可执行程序,可以通过py2exe编译完成。
在VC中调用python时,可以结合py2exe,完成整个程序的独立发布^_^
google.py:
#! /usr/bin/env python
import sys, webbrowser
def main(a):
url = "http://www.google.com/search?q=%s" % a
webbrowser.open(url)
VC源码(python路径等需要自己设置),本程序是通过调用python打开google搜索传入的关键字
#include <Python.h>
int main()
{
Py_NoSiteFlag = 1; //避免出现“'import site' failed”的错误
Py_Initialize();
PyObject * pModule = NULL;
PyObject * pFunc = NULL;
pModule = PyImport_ImportModule("google"); //调用的文件名
pFunc= PyObject_GetAttrString(pModule, "main"); //调用的函数名
PyObject *arg;
arg = Py_BuildValue("(s)", "look"); //构造参数,关键字为“look”
PyEval_CallObject(pFunc, arg); //调用函数
Py_Finalize();
getchar();
return 0;
}
一、首先利用py2exe将google.py编译为可执行程序:
目的是利用其中生成的python25.dll(这个所有对于所有的python脚本都一样吧)和library.zip(不同脚本生成不同的库文件)。
二、发布VC编译生成的程序时,需要以下文件:
可执行程序:*.exe;
dll:python25.dll;
python脚本:google.py;
库文件:python25.zip(将library.zip重命名为python25.zip,程序默认调用这个名字的库文件)。
三、放到一个无python环境的机器中,测试成功鸟。
So Now,可以发布调用python的VC程序了!
UPDATE:
同时要加py2exe生成的相关的pyd库文件