python打包:

因为有需要将python程序的代码进行打包,网上资料较少。

找到几款工具,cx_freeze可以参考:http://www.haogongju.net/art/1192978

关于setup的描述参见:http://www.itkee.com/developer/detail-17f8.html

我试验了一下cvfreeze,是可以做成exe,换windows机器也是可以运行的,但是并不完美,需要继续研究,这里简单记录一些东西。

1.根据python版本下载安装

下载地址:http://sourceforge.net/projects/cx-freeze/files/

根据机器及系统类型下载对应文件并安装。

安装之后记得修改C:\python27\Scripts\cxfreeze.bat文件:
@echo off

C:\python27\python.exe C:\python27\Scripts\cxfreeze %*

否则总会出现“系统找不到指定路径”的问题。

正确安装之后 cxfreeze hello.py --target-dir dist 即可生成对应的exe文件,而文件同dll一起copy放到别的机器上是可以正确运行的。

但是这里也是有缺点的,只能对单个文件进行打包,多文件打包的还在摸索中。后续补充。

 

Python模块的安装方法:

1. 单文件模块:直接把文件拷贝到$python_dir/lib

2. 多文件模块,带setup.py:python setup.py install

3. egg文件,类似Java的jar:
1) 下载ez_setup.py,运行python ez_setup
2) easy_install *.egg

虽然Python的模块可以拷贝安装,但是一般情况下推荐制作一个安装包,即写一个setup.py文件来安装。

setup.py文件的使用:
% python setup.py build #编译
% python setup.py install #安装
% python setup.py sdist #制作分发包
% python setup.py bdist_wininst #制作windows下的分发包
% python setup.py bdist_rpm

setup.py文件的编写:
setup.py中主要执行一个 setup函数,该函数中大部分是描述性东西,最主要的是packages参数,列出所有的package,可以用自带的find_packages来动态获取package。所以setup.py文件的编写实际是很简单的。

简单的例子:

setup.py文件:
from setuptools import setup, find_packages
setup(
name="mytest",
version="0.10",
description="My test module",
author="Robin Hood",
url="http://www.csdn.net",
license="LGPL",
packages= find_packages(),
scripts=["scripts/test.py"],
)

mytest.py文件:
import sys
def get():
return sys.path

scripts/test.py文件:
import os
print os.environ.keys()

setup中的scripts表示将该文件放到 Python的Scripts目录下,可以直接用。OK,简单的安装成功,可以运行所列举的命令生成安装包,或者安装该python包。

本机测试成功(win32-python25)!