# py打包

# 打包路径问题

重点来了。打包的路径

这个路径如果是多文件打包无问题,如果打包后单文件会有路径问题

import os
BASE_DIR = os.path.dirname(os.path.abspath(__file__)) # 当前路径绝对路径

with open(os.path.join(BASE_DIR,"xxx.txt"),mode='r',encoding='utf-8') as f:
1
2
3
4

打包后单文件则使用此写法:

import sys
import os

BASE_DIR = os.path.dirname(os.path.realpath(sys.argv[0])) # 当前路径绝对路径
1
2
3
4

# 开始打包

pip3 install pyinstaller

  1. 据说mac、win要分平台分别打包
  2. 打包用虚拟环境
1. mac 环境开发(为程序创建虚拟环境)
2. 开发完毕后
	pip freeze > requestments.txt
3.打开win环境
4.创建虚拟环境(对应的py版本)
5. 安装项目依赖
	pip install -r requrements.txt
6. 安装pyinstaller
	pyinstaller -F xxxxx
产出 app.ext
1
2
3
4
5
6
7
8
9
10
1. mac 环境开发(为程序创建虚拟环境)
2. 开发
3. 安装pyinstaller
	pyinstaller -F xxxxx
产出 app.ext
1
2
3
4
5

打包后多文件速度快一些,单文件是把包解压到缓存路径里。

# 1.1打包后多文件

pyinstaller -D app.py 如果程序有报错,在终端中执行文件

# 1.2打包后单文件

pyinstaller -F app.py 如果程序有报错,在终端中执行文件