安裝須要用到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) | 使用指定下一個要播放的音樂文件,當前的音樂播放完成後自動開始播放指定的下一個。一次只能指定一個等待播放的音樂文件。 |