Py05·编译打包

python 文件编译

python3编译成pyc文件pyc是编译py之后生成的本地文件。 一般当我们想发布系统的时候不想让别人看到源代码,所以要提前生成pyc文件。

# -*- coding: utf-8 -*-
#python之模块py_compile用法(将py文件转换为pyc文件);二进制文件,是由py文件经过编译后,生成的文件.
 
#办法一:
import py_compile # 编译指定py文件
import compileall as ca # 编译指定目录下的py文件

# 将d盘xxx\xx目录下所有源码文件编译
# ca.compile_dir(r'E:\ldtools\ide\workspace\ExcelMysql\ttep')

#加r前缀进行转义
py_compile.compile(r'E:\ldtools\ide\workspace\ExcelMysql\ttep\setConfig.py') #py文件完整的路径.
# py_compile.compile('setConfig.py') #py文件完整的路径
print('完成')

打包成exe文件

安装环境包
安装pyinstaller:在命令行中运行以下命令
pip install pyinstaller
--打包
pyinstaller -F -w -i 图标名.后缀 源文件.py
Pyinstaller -F -w one.py
或
pyinstaller -F -w -i 图标.pig one.py
--noconsole 执行后不显示命令行窗口
pyinstaller --noconsole --onefile --add-data "瞬间的永恒.mp3;." heart.py

在Python中可以使用pyinstaller将所有依赖打包成exe文件。步骤如下:
cd到你的Python程序所在目录
使用以下命令来构建exe文件:
pyinstaller --onefile your_program.py
其中,--onefile参数表示将所有依赖打包成一个exe文件。如果你想要将依赖打包成多个文件,可以使用--onedir参数。
构建完成后,在dist目录中会生成exe文件。
注意:如果你的程序使用了一些外部文件(如配置文件或图片等),需要将这些文件一同打包。可以使用--add-data参数来指定需要打包的文件,例如:
pyinstaller --onefile --add-data "config.ini;." your_program.py
其中,"config.ini;."表示将当前目录下的config.ini文件打包,并将其放到exe文件所在目录中。

打包后找不到MP3

打包后找不到MP3
如果你在使用打包后生成的exe文件时,出现了找不到某个MP3文件的情况,这可能是因为在打包时没有将该文件包含在exe文件中。
可以尝试使用
--add-data
参数在打包时指定要打包的MP3文件。例如,假设你的Python程序依赖了
mymusic.mp3
文件,你可以使用以下命令来打包,并将
mymusic.mp3
文件包含在exe文件中:
pyinstaller -F --add-data "mymusic.mp3;." your_program.py
同时,在你的Python程序中,你可以使用
os.path.join()
来构造正确的MP3文件路径。例如,在上面的例子中,你可以使用以下代码来加载mymusic.mp3:
```py
import os
import pygame

# 获取程序所在目录
dir_path = os.path.dirname(os.path.abspath(__file__))

# 加载MP3文件
music_file = os.path.join(dir_path, 'mymusic.mp3')
pygame.mixer.music.load(music_file)

# 开始播放音乐
pygame.mixer.music.play()

# 循环播放
while True:
    if not pygame.mixer.music.get_busy():
        pygame.mixer.music.play()
这样就可以确保程序可以正确地加载MP3文件并正常工作了。注意,在使用
os.path.join()
来构造文件路径时,要使用
os.path.abspath(__file__)
获取程序文件的绝对路径,然后使用
os.path.dirname()
来获取该文件所在的目录。这样可以确保程序可以在任意路径下运行,而不受当前工作目录的影响。

```py
import os
import pygame
#播放音乐
print('播放音乐')
# 获取程序所在目录
dir_path = os.path.dirname(os.path.abspath(__file__))
# 加载MP3文件
music_file = os.path.join(dir_path, '瞬间的永恒.mp3')
#pygame.mixer.music.load(music_file)
pygame.mixer.init()
pygame.mixer.music.load(music_file) 
pygame.mixer.music.set_volume(0.5) 
pygame.mixer.music.play(loops=-1) # 播放次数-1是无限次数

使执行exe后的cmd窗口 不显示

session default avatar
如果你在使用
pyinstaller
打包Python程序成exe文件时,出现了弹出命令行窗口的情况,这是因为默认情况下
pyinstaller
会在程序执行时打开一个控制台窗口。
你可以使用以下两种方法来禁止生成控制台窗口:
1. 使用
--noconsole
参数
使用
--noconsole
参数告诉
pyinstaller
在打包应用程序时不使用控制台窗口。你可以使用以下命令来打包应用程序:
pyinstaller --noconsole your_program.py

在spec文件中添加控制台窗口禁用选项

如果你使用了
pyinstaller
的spec文件来打包你的应用程序,你可以在spec文件中添加以下选项来禁止控制台窗口:
python

copy_svg
复制
a = Analysis(['your_program.py'],
             pathex=['.'],
             binaries=[],
             datas=[],
             hiddenimports=[],
             hookspath=[])

pyz = PYZ(a.pure, a.zipped_data,
          cipher=block_cipher)

exe = EXE(pyz,
          a.scripts,
          a.binaries,
          [],
          name='your_program',
          debug=False,
          bootloader_ignore_signals=False,
          strip=False,
          upx=True,
          upx_exclude=[],
          runtime_tmpdir=None,
          console=False <--- 在这里添加控制台窗口禁用选项
          )
在
EXE
构造函数中,添加
console=False
参数来禁止控制台窗口。
使用这两种方法之一,就可以禁止程序在执行时弹出控制台窗口。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

青鸟遇鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值