美文网首页
mac python3 + pyqt5+ pyinstaller

mac python3 + pyqt5+ pyinstaller

作者: djif001 | 来源:发表于2019-01-11 13:33 被阅读0次

    对于iOS开发不要随便拆卸系统自带的Python,因为有很多 library 还是使用 Python2.7。


    一、python3和pip3、pyqt5安装

    1 安装Xcode

    • App Store 搜索Xcode 并安装

    • 安装 Xcode command line tool

    xcode-select --install

    2 安装套件管理工具 Homebrew

    • 安装 Homebrew
    
    /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    
    
    • 查看是否安装成功

    brew doctor

    3 安装Python3

    brew install python3

    4 确认安装

    • 系统自带的python2.7,目录为/usr/bin/python

    which python

    • brew安装的python3.4,目录为/usr/local/bin/python3

    which python3

    5 检测安装成功

    • 系统自带的

    python -V

    • brew安装的

    python3 -V

    6 安装pip

    • 6.1 系统自带的python没有pip,只有easy_install

    系统的python安装pip,系统的python安装pip需要root权限

    sudo easy_install pip

    • 6.2 Python3 安装pip

    brew install python3 or brew reinstall python3
    如果安装失败,使用下面的方式安装:

    curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
    python3 get-pip.py
    
    • 6.3 使用pip
    
    // 系统自带的
    
    pip --version
    
    //brew安装的
    
    pip3 --version
    
    

    7 安装sip

    
    //PyQt5对sip有依赖,需要先安装
    
    pip3 install sip
    
    

    8 安装PyQt5

    pip3 install PyQt5

    9 mac下需要额外安装qadesigner,两条命令

    brew install qt
    brew install qt-creator
    

    10安装过程的异常处理

    • 如果出现link error
      Error: The brew link step did not complete successfully...
      可以使用如下命令解决,哪个文件夹不对就处理哪个
      sudo chown -R "$USER":admin /usr/local
    • 如果出现sudo权限不足:permission denied,可以参考下面的链接
      https://www.jianshu.com/p/5c4518584fa7

    11qt设计器.ui文件转化为.py文件

    pyuic5 -o mainwindow.py mainwindow.ui


    二、使用pyinstaller打包

    几种不同的打包工具都试用了下,pyinstaller应该是最好用的,主要是一直有人维护。
    然后在 terminal 中依次键入,:

    pyinstaller --windowed --onefile --clean --noconfirm main.py
    pyinstaller --clean --noconfirm --windowed --onefile main.spec
    

    其中,如果要自行设计 Mac 系统下的图标的话,那么可以替换第 1 条指令为:
    pyinstaller --windowed --onefile --icon=sat_tool_icon.icns --clean --noconfirm main.py
    其中图片转换地址为 https://iconverticons.com/online/
    可见第一部是生成打包规则文件。

    常见问题

    打包是时候常常有外部数据源的需求,可以参考如下链接:

    解决办法:https://www.xncoding.com/2015/09/07/python/pyinstaller.html

    对于mac下单pyqt打包,还会出现精度变低的问题,解决方法:

    • 方法一:
      在打包出的app里面的info.plist里面添加:
        <key>NSHighResolutionCapable</key>
        <true/>
        <key>NSPrincipalClass</key>
        <string>NSApplication</string>
    
    • 方法二:
      修改上面生成的spec的规则文件:
    info_plist = {
        "NSHighResolutionCapable": True,
        "NSPrincipalClass":'NSApplication'
    }
    
    app = BUNDLE(exe,
                 name='reminder_dj.app',
                 info_plist=info_plist,
    ...
    

    相关文章

      网友评论

          本文标题:mac python3 + pyqt5+ pyinstaller

          本文链接:https://www.haomeiwen.com/subject/qjkxdqtx.html