Python打包成exe和Mac中可执行app

2019-03-02 10:55:20   Python
  Python  

Windows-exe

环境:Windows、Python 3.6

首先进入命题提示符

1.windows键(小窗形状的键)+r
2.输入cmd回车

安装pyinstaller,前提是安装了pip,没安装pip的先安装pip

pip install pyinstaller

进入要打包的py文件的目录,我的是桌面也就是Desktop

cd Desktop

执行打包

pyinstaller test.py
pyinstaller -F test.py # 加-F参数会生成exe文件,不加是一个散的文件夹
pyinstaller -F --icon=test.ico test.py # 添加自定义的图标

最终在当前目录的dist文件夹下生成一个文件夹和一个exe(加-F参数),双击运行即可

Mac-app

环境:Mac OS、Python3.6

打开Mac自带的terminal,安装了iterm2的使用iterm2也可以,从开发软件进入terminal也可以,总之就是进入命令行就对了。 安装py2app,同样需要pip

pip install py2app

进入到要打包的py文件的目录,然后执行

py2applet --make-setup test.py

执行上述命令后会生成一个setup.py,大概长这样

"""
This is a setup.py script generated by py2applet

Usage:
    python setup.py py2app
"""

from setuptools import setup

APP = ['test.py']
DATA_FILES = []
OPTIONS = {}

setup(
    app=APP,
    data_files=DATA_FILES,
    options={'py2app': OPTIONS},
    setup_requires=['py2app'], install_requires=[]
)

如果自己的系统有环境,install_requires 可以不写,但是大多数情况大家都是为了在其他电脑也可以用而不用装环境,所以就需要把所有的东西都打包进去,比如我:

install_requires=['requests', 'bs4', 'lxml']

设置好依赖后执行打包

python  setup.py  py2app  #加-A参数不打包依赖

生成的应用在当前目录的dist目录下

可能遇到的问题

  • 打包报错提示找不到dylib,用pyenv很多情况就会导致这种问题,尤其是3.5之后 可以试一下这个重装一下python

    PYTHON_CONFIGURE_OPTS="--with-dtrace --enable-shared" pyenv install 3.6.2

    上述方法不行的话,先去看看你有没有dylib,目测是这个目录

    /usr/local/Cellar/python/3.6.2/Frameworks/Python.framework/Versions/3.6/lib

    根据你的版本去寻找,类似于libpython3.6.dylib 或者 libpython3.6m.dylib 没有的话,执行命令安装:

    brew install boost-python --with-python3

    当你有了libpython3.6.dylib 或者 libpython3.6m.dylib之后,进入报错的目录,也就是当前环境运行python的目录,通常是~/.pyenv/versions/版本号/lib我的是:

    /Users/vien/.pyenv/versions/3.6.2/lib

    然后创建软连在这个目录下

    ln -s /usr/local/Cellar/python/3.6.2/Frameworks/Python.framework/Versions/3.6/lib/libpython3.6.dylib libpython3.6.dylib

    如果是libpython3.6m.dylib

    ln -s /usr/local/Cellar/python/3.6.2/Frameworks/Python.framework/Versions/3.6/lib/libpython3.6m.dylib libpython3.6.dylib

    如此便可以了

  • 生成的文件执行报错,先试试把app移动到application中再用

  • 如果再有错,八成是你依赖没有打包全,要么就是i你程序的错,这种情况就需要命令行运行生成的app,查看报错:

    ./dist/test.app/Contents/MacOS/test

    在你的项目目录下,执行上述语句,其中test换成你的app的名字,实在不行根据你的文件夹找找。

viencoding.com版权所有,允许转载,但转载请注明出处和原文链接: https://viencoding.com/article/107
欢迎小伙伴们在下方评论区留言 ~ O(∩_∩)O
文章对我有帮助, 点此请博主吃包辣条 ~ O(∩_∩)O

猜你喜欢


评论

There are no comments yet.
未登录

登录后即可发表评论

登录或注册

标签

AdSense Anaconda Android apache API apt Auth AWS B-tree Bandwagon Blog bower brew bytes Caffe Catalina certbot Charles cloudcone Composer conda CoreML CPU crontab CSS csv Cuda cv2 datetime Digitalocean DNS Docker Docker-Compose Eloquent Excel export Flask FTP GET Git GitHub GitLab Gmail GoDaddy Google GTM hash Homebrew Homestead HTML http HTTPS IDEA image imagemagick imagick imgick import InnoDB ios iou iPhone ISO8601 iTerm2 Java JavaScript JPG JS Keras Laravel Laravel-Admin lazyload Linux list Livewire lnmp load logs Lravel Mac Markdown matplotlib md5 mix MobileNet Mojave mongo MongoDB MySQL Namesilo Nginx Node npm numpy Nvidia Nvidia-Docker onevps OpenCV Openpose openpyxl oss Outline parse PayPal PHP php-fpm PhpStorm PHP扩展 PIL Pillow pip PNG POST Protobuf PyCharm pyenv pymongo Python Python,人工智能,机器学习,VOC,xml Queue Redis requests RGB Sanctum save selenium SEO Shadowsock Shadowsocks ShadowsocksR simplemde Spring Boot SQLServer ssd SSH ssl SSL证书 SSR str Sublime sudo swap Swift Tensorflow TensorflowLite Terminal Terminator timestamp Ubuntu urllib UTC v2ray Valet Validation Validator VienBlog virtualenvs VPN VPS Vultr Web Windows WordPress Xcode xlsx yaml YAPI YUV zip zmq zsh 上网 下载图片 主从同步 云主机 云存储 云开发 云服务器 人工智能 优化 优惠码 伪原创 作弊与反作弊 免费ss账号 免费提现 切片 前端 加密 协议 博客 友链 双击事件 后台运行 后端 命令 国内镜像源 图标 图片操作 图片转换 域名 多身份认证 大小写转换 姿态检测 安卓模拟器 安装 定时任务 定时执行 密码 密钥 导出导入 小程序码 延迟加载 异常 微信 微信小程序 快捷方式 慢查询 懒加载 提现 搜索引擎 搬瓦工 搭梯子 教程 数据库 数据重复 文件上传 无法登录 日志 日期 时区 时间 时间戳 服务器 机器学习 权限 梯子 模拟浏览器 港版支付宝 漏洞 爬虫 生活服务 用户管理 病毒 登录 目标检测 科学上网 系统升级 索引 组件 组件开发 编辑器 自动付款 自定义组件 英文伪原创 计划任务 计算机视觉 订阅通知 认证 语法 读写分离 远程连接 配置文件 重定向 错误异常 错误提示 队列 阿里云 香港 香港手机号
亲情非友情链接