易截截图软件、单文件、免安装、纯绿色、仅160KB

简化Python解释环境的安装

问题描述
在C++和Python混合编程中,在软件发布的时候需要将python的解释器打包到安装程序中,为了提高用户体验,我们需要让用户感觉不到python的安装,如果用户已经安装有python的环境,我们也要保证不影响现有的系统。
解决方案
在Python2.5以后,python支持从zip文件中读取python脚本文件,支持读取py,pyc,pyo,不支持读取pyd,因此
我们可以将python的标准库编译以后打包到一个zip文件中,在C++中调用python脚本的时候,将zip文件加入到sys.path的搜索路径中来完成。
将python的标准库的脚本文件目录C:\Python25\Lib中的脚本文件copy到一个指定的目录,然后我们删除掉一些不用的库文件比如msilib,complier等(此步不熟悉可以不要省去删除多余文件)。
将脚本编译为优化后的文件 python -O -m compileall destdir,然后删除所有冗余的py和pyc, del /S /Q "%1\*.pyc" "%1\*.py " ( %1 表示目标文件夹 )
将文件压缩成zip格式 "%WINRAR_DIR%\WinRar" a -r -m5 -tk "python25.zip"  "*"
我们自己的py文件可以按照同样的方法压缩到src.zip中
将python的pyd文件(Windows默认是C:\Python25\DLLs)复制到目标文件夹python25_dll中
将python25.dll复制到应用程序的搜索路径中
在C++中调用Python的C API设置python库的搜索路径,这样我们就可以就可以通过Python C API进行混合语言的编程,在部署的时候不需要单独按照python安装程序
    char buffer[1024] = { 0 };
    Py_Initialize();
    PyRun_SimpleString( "import sys" );
    //获取当前路径,如果是GUI程序有可能会改变程序的当前工作目录,如果是服务器
    //程序一般当前的工作目录就是二进制文件所在的目录
#ifdef WIN32
    char achCwdBuf[PATH_MAX] = {0};
    if( NULL != GetModuleFileName(NULL, achCwdBuf, PATH_MAX) )
#else
    if( NULL != ACE_OS::getcwd(achCwdBuf, PATH_MAX) )
#endif // end of ifdef WIN32
    {       
        string strCwd = achCwdBuf;
        strCwd = strCwd.substr( 0, strCwd.find_last_of(


相关文档:

Python 参数知识(变量前加星号的意义)

过量的参数
在运行时知道一个函数有什么参数,通常是不可能的。另一个情况是一个函数能操作很多对象。更有甚者,调用自身的函数变成一种api提供给可用的应用。
对于这些情况,python提供了两种特别的方法来定义函数的参数,允许函数接受过量的参数,不用显式声明参数。这些“额外”的参数下一步再解释。
注意a ......

python Excel 编程

1)Excel hyperlink:
xlsApp = win32com.client.Dispatch('Excel.Application')
cell = xls.App.ActiveSheet.Cells(1,1)
cell.Hyperlink.Add(cell,'http://xxx')
2)Excel row/column count:
sht = xlsApp.ActiveSheet
sht.Columns.Areas.Count
sht.Rows.Areas.Count
*************************
[1]使用PyExcelera ......

Python 开篇

由于工作需要,又要学习新的开发语言-Python, 语言学过几种了, 感觉还是有好多相似的地方, 这个Python感觉就跟Java有好多相通的地方, 首先你可以在Eclipse上通过配置后来开发Python。这里我听从了老大的建议,配置了一个FlexBuilder 作为Python的IDE进行开发。
目前刚开始学习Python的基本语法, 今天主要看了一下Pyth ......

Python常用模块下载链接

Python http://www.python.org/download/ wxPython http://www.wxpython.org/download.php#binaries Vpython http://vpython.org/contents/download_windows.html Matplotlib http://sourceforge.net/projects/matplotlib/files/matplotlib/ PyGlet http://www.pyglet.org/download.html PyGame http://www.pyga ......

Ruby和Python的语法比较


Ruby和Python的语法比较
 
 
 
其实Ruby和Python非常接近,比大多数别的语言要接近的多,所以喜欢用啥就用啥(大实话,虽然也是废话)。语法上的差别虽然有那么一点,大部分是syntax sugar,我斗胆稍微列几个(python我也忘得差不多了,不对的大家尽管来鞭尸吧),但是主要差异还是设计思想上的:灵活 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号