本人python新手,都是在学习过程中遇到的,拿出来分享一下:
1、既然要打包,当然工具少不了,这次我们使用cx_Freeze-4.3.1(传送门,请将图片下开下来960kb,更名为“cx_Freeze-4.3.1.msi”)来对我们的python3.3的py脚本进行打包。注意,要用cx_Freeze对python打包请注意下载的cx_Freeze的版本,要对应的版本才能对对应的python脚本进行打包。没办法python不同的版本差别还是有一点大的,这里的cx_Freeze 对应的python版本是3.3.
工具下载下来后,直接安装就是了,他不像别的版本,他能自动识别python安装的位置,自己安装到python安装目录下面(当然只安装过两次,两次都是这样,真实情况也不清楚)
2、个人推荐使用配置文件setup.py(传送门,同理,请更名为“setup.py”)来编译的方法,这样清楚明了。将你要打包的脚本与setup.py放在同一个目录下,不要有中文名字,建议放在根目录下。
#encoding:utf-8
from cx_Freeze import setup,Executable
setup(
name = "GetBingbkimg",
version = "1",
description = "To Get picture form Bing.com",
executables = [Executable("getbkimg.py")]
)
3、编译
附:测试文件(传送门 国际惯例,更名为“getbkimg.py”)(下载bing.com网站上的背景图片,并保存在一个文件夹内)
#coding:utf-8
import re
import urllib.request
import time
import os
def getHtml(url):
page = urllib.request.urlopen(url)
html = page.read()
page.close()
return html
def getImg(html,reg):
imgreg = re.compile(reg)
imglist = re.findall(imgreg,html)
for imgurl in imglist:
timestr = time.strftime('%Y-%m-%d-%H-%M-%S',time.localtime(time.time()))
dirpath = time.strftime('%m',time.localtime(time.time()))
dirpath = os.path.join('bingimages',dirpath)
if not os.path.exists(dirpath):
os.makedirs(dirpath)
newpath = os.path.join(os.getcwd(),dirpath)
os.chdir(newpath)
urllib.request.urlretrieve(imgurl, '%s.jpg' % timestr)
print('图片路径:',os.path.join(os.getcwd(),'%s.jpg' % timestr))
htmlstr = getHtml('http://www.bing.com')
reg = r"g_img={url:\\'(.*?)\\',id"
getImg(str(htmlstr),reg)
好啦,自己尝试一下吧!