发布python应用程序
【windows+python3.1.2】
发布python应用程序是个很麻烦的事,因为<1>无法编译原生code<2>每个版本的字节码不同<3>如果直接上源码会损害自己的利益——等等
方法1——手动打包
怎么打包呢?一个python文件夹要二十多MB啊!
yes!我们就要清理无用的东西!
先写一个win.py文件:
x = int(input("please a number: "))
print("your number is:",x)
再写run.bat:
@python -m py_compile win.py
@python win.pyc
@pause
然后把python文件夹里的文件全部复制到win和run的目录下。
现在开始精简——
1.先搜索所有的.txt,删除
2.删除Doc目录(你认为用户会去看python的文档吗?)
3.删除Tools目录
现在开始判断,用到tcl没?用到额外的库没?用到unicode没?用到ctypes没?然后进入各个目录进行删除额外的文件。因为我们的win.py什么都没有用到,所以删除除了python[.exe]外的所有东西,搞定!运行run.bat照样运行。
然后——打包所需的库,再按相同的办法去除无用的东西(我测试时用^x^v来测试,比较简便,你认为什么方法比较方便?)
方法2——用户操作
这个方法对咱编写者来说简单,也就是只打包程序用到的、RUNTIME不自带的、对咱和用户来说都是额外的——库,咱光打包它,好了,写个readme,要求用户手动下载runtime即可,不过为了一个小程序、、装个居然要20多MB的runtime。。。有点不值……
但是呢,对比较大型、复杂或属于内部交流类型的程序,可以用这个方法;甚至,你可以只装上字节码,写readme要求用户把所需的所有东西装好就行了!(不过估计就没多少用户了)
好了,这下你就不用被py2exe之类的程序、配置迷惑,好好地用系统自带的pyc吧!
相关文档:
def getText(self,nodelist):
rc=""
for node in nodelist:
if node.nodeType == node.TEXT_NODE or node.nodeType == node.CDATA_SECTION_NODE:
rc = rc + node.data
return rc
def parseXML(self,requesturl,xml):
dom = minidom.parse(requesturl)
for node in dom.getElementsByTagName('ca ......
转自:
http://hi.baidu.com/feng2211/blog/item/8b86b6d9816a3f2710df9b79.html
和
http://i.19830102.com/archives/164
Python 版本:2.6
下载地址:http://www.python.org/download/releases/2.6.1/
下载msi文件并安装
MySQLdb版本: MySQL-python-1.2.2.win32-py2.6.exe
下载地址:http://home.netimperia.com/ ......
Ruby和Python的语法比较
其实Ruby和Python非常接近,比大多数别的语言要接近的多,所以喜欢用啥就用啥(大实话,虽然也是废话)。语法上的差别虽然有那么一点,大部分是syntax sugar,我斗胆稍微列几个(python我也忘得差不多了,不对的大家尽管来鞭尸吧),但是主要差异还是设计思想上的:灵活 ......
conn = httplib.HTTPConnection(EPG_IP + ":" + HTTP_PORT)
url = FAV_URL_PARTH +"userid=" + USER_ID + FAV_DIR_MODIFY
param = '''<ps100request id="Favorite.Category.modify">
<categoryid>'''+categoryid+'''</categoryid>
<categoryname>'''+categoryname+'''</ ......
#coding=utf-8
from math import sqrt,cos,sin
import Image, ImageDraw
class SpireShape(object):
def __init__(self, draw):
self.draw = draw
self.line_width = 1
& ......