python: 开发一个小app的几个问题

1、解决 "from utils.xx import xx " 的方案

2、dev与打包后读写路径问题

3、mac下gui与打包选择

文件目录如下

utils 文件夹作为一个package,必须包含一个 __init__.py 文件

如何解决在main.py中  from utils.tools import myPrint

在main.py 最前面写上

# -*- coding: utf-8 -*-
import sys
import os
sys.path.append(os.path.dirname(os.path.dirname(__file__)))

在 utils/tools.py的最前面写上

# -*- coding: utf-8 -*-
import sys
import os
sys.path.append(os.path.dirname(os.path.dirname(__file__)))

然后就可以

        在main.py 中 from utils.xxx import xxx 

        在utils/xx.py 中 from utils.xx import xx 

好处是不用修改系统的环境配置,打包后的时候 import 同样有效代码不会出错。

打包后的文件读写路径问题

利用 sys.argv[0] 获取 程序运行的目录

run_file_path = sys.argv[0]
arr = run_file_path.split('/')
del arr[len(arr)-1]
run_dir = '/'.join(arr)

比如 main.py / gui.app 放在 /user/alice/python 文件夹下。不管我们在哪个目录运行main.py / gui.app 时,从上述代码可以获取 run_dir : '/user/alice/python'。

gui 与 打包方案选择

gui: 选择 tkinter

打包:选择pyinstaller . 为什么不选择py2app?因为mac 深色模式下打包后界面很奇怪一团黑;并且打包还会出现modules not found 的问题,明明是一些根本没用到的模块。

1、如果程序打包后需要命令行交互 

pyinstaller --onefile --clean --noconfirm ./src/main.gui.py

打包结果是一个没有后缀的可执行文件,启动的时候直接点到那个文件然后回车 (比如 先cd 到文件所在目录,然后 ./main , 回车)

2、如果不需要命令行交互,直接打包成一个.app程序。

pyinstaller --windowed --onefile --clean --noconfirm ./src/main.gui.py

使用的时候直接双击就打开了,和其他mac上的app一样。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值