安装须要用到pip工具,该工具在3.5版本的python中已经自带不用另行安装,可是须要在系统变量中添加python下的Scripts文件夹,以下图:
html
在Path变量值中添加【;(python的安装目录)\Scripts】
*注意不要漏了最前面的分号python
用管理员权限安装编辑器
pip install pyinstaller
#后面的路径为你的python文件的位置(若是第一步没有添加变量,这里仍是要到Script下执行pyinstaller.exe文件) pyinstaller -F C:\Users\wyc\Desktop\Auto\auto.py
基础命令:函数
命令 | 操做说明 |
---|---|
-F | 打包成单个文件 |
-D | 打包成单个文件夹形式 |
-C | 控制台模式,执行程序会跳出控制台 |
-w | 窗口模式,不会跳出控制台 |
打开就能够运行了呢!工具
在脚本定义一个读取相对路径的函数:oop
import time import os, sys def resource_path(relative_path): """ 定义一个读取相对路径的函数 """ if hasattr(sys, "_MEIPASS"): base_path = sys._MEIPASS else: base_path = os.path.abspath(".") return os.path.join(base_path, relative_path)
在须要调用文件的地方用以下格式包裹:网站
resource_path('resources/SING-fight.mp3')
pyinstaller -F C:\Users\wyc\Desktop\Auto\pyResource1.py
在生成的.spec文件exe = EXE()中加入下面这行:spa
[('resources\SING-fight.mp3',r'C:\Users\wyc\Desktop\Auto\resources\SING-fight.mp3','music'),],
元组内的三个项:.net
第一个为代码中resource_path包裹的地址;debug
第二个是文件的实际地址;
第三个是打包进程序的文件名字
打开.spec文件,会被正确引用:
exe = EXE(pyz, a.scripts, a.binaries, a.zipfiles, a.datas, [('resources\SING-fight.mp3',r'C:\Users\wyc\Desktop\Auto\resources\SING-fight.mp3','music'),], name='Diary', # 这里能够设置可执行文件的名字 icon='SING.ico',# 设置图标 debug=False, strip=None, upx=True, console=True ) # 是否开启控制台模式
注意加地址前的r以及行尾的逗号,更新过spec文件后,再从新打包只须要执行pyinstaller start.spec 就能够了。
添加图标的方法:
方法一:在执行打包命令时加入下面这句
--icon=xxx.ico
第二种(推荐)是用文本编辑器或记事本打开执行打包后文件夹内新生成的xxx.spec文件,而后在exe =()中加入一行:
icon = ’xxx.ico‘
import time import os, sys import pygame def resource_path(relative_path): """ 定义一个读取相对路径的函数 """ if hasattr(sys, "_MEIPASS"): base_path = sys._MEIPASS else: base_path = os.path.abspath(".") return os.path.join(base_path, relative_path) def music(): """ 定义一个播放音乐的函数 :return: """ pygame.mixer.init() print("播放音乐1") track = pygame.mixer.music.load(resource_path('resources/SING-fight.mp3')) pygame.mixer.music.play() # print("播放音乐2") # track1 = pygame.mixer.music.load("xx.mp3") # pygame.mixer.music.play() # # print("播放音乐3") # track2 = pygame.mixer.Sound("tkzc.wav") # track2.play() def timer(n): ''''' 每n秒执行一次 ''' while True: print(time.strftime('%Y-%m-%d %X', time.localtime())) start() # 此处为要执行的任务 time.sleep(n) def start(): print('开始执行mp3文件') music() # 播放音乐了 print('mp3文件执行完毕') timer(10)
说明:dist、bulid,pyResource1.spec文件是执行pyinstall以后生成的,在哪一个文件夹执行就生成到哪一个文件夹下;
删除dist和bulid文件夹,从新生成,对.spec文件打包
pyinstaller pyResource1.spec
双击执行exe文件,音乐能够听到
跳出cmd窗口表示执行中
1.图标转换网站:https://www.ico.la/
https://www.cnblogs.com/emptybox/p/5092643.html
http://blog.csdn.net/a6225301/article/details/47103447
3.音乐播放模块说明:
方法 | 说明 |
---|---|
pygame.mixer.init() | 或者只初始化音频部分 |
pygame.mixer.music.load('xx.mp3') | 使用文件名做为参数载入音乐 ,音乐能够是ogg、mp3等格式。载入的音乐不会所有放到内容中,而是以流的形式播放的,即在播放的时候才会一点点从文件中读取。 |
pygame.mixer.music.play() | 播放载入的音乐。该函数当即返回,音乐播放在后台进行。 |
pygame.mixer.music.play(loops=0, start=0.0) | loops和start分别表明重复的次数和开始播放的位置,若是是-1表示循环播放,省略表示只播放1次。第二个参数和第三个参数分别表示播放的起始和结束位置。 |
pygame.mixer.music.stop() | 中止播放, |
pygame.mixer.music.pause() | 暂停播放 |
pygame.mixer.music.unpause() | 取消暂停。 |
pygame.mixer.music.fadeout(time) | 用来进行淡出,在time毫秒的时间内音量由初始值渐变为0,最后中止播放。 |
pygame.mixer.music.set_volume(value) | 来设置播放的音量,音量value的范围为0.0到1.0。 |
pygame.mixer.music.get_busy() | 判断是否在播放音乐,返回1为正在播放。 |
pygame.mixer.music.set_endevent(pygame.USEREVENT + 1) | 在音乐播放完成时,用事件的方式通知用户程序,设置当音乐播放完成时发送pygame.USEREVENT+1事件给用户程序。 |
pygame.mixer.music.queue(filename) | 使用指定下一个要播放的音乐文件,当前的音乐播放完成后自动开始播放指定的下一个。一次只能指定一个等待播放的音乐文件。 |