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 API apt Auth AWS B-tree Bandwagon Blog bower brew bytes Caffe Catalina cloudcone Composer conda CPU crontab CSS Cuda cv2 datetime Digitalocean DNS Docker Docker-Compose export Flask FTP GET Git GitHub Gmail GoDaddy Google GTM hash Homebrew Homestead HTML http HTTPS IDEA image imagemagick imagick imgick import InnoDB ios iPhone ISO8601 iTerm2 Java JPG Keras Laravel Laravel-Admin lazyload Linux list lnmp load logs Lravel Mac Markdown matplotlib md5 mix MobileNet Mojave mongo MongoDB MySQL Namesilo Nginx npm numpy Nvidia Nvidia-Docker onevps OpenCV Openpose Outline parse PayPal PHP php-fpm PhpStorm PHP扩展 PIL Pillow pip PNG POST Protobuf PyCharm pyenv pymongo Python Python,人工智能,机器学习,VOC,xml Queue Redis requests save selenium SEO Shadowsock Shadowsocks ShadowsocksR simplemde Spring Boot SQLServer ssd SSH SSL证书 SSR str Sublime sudo swap Tensorflow Terminal Terminator Ubuntu urllib UTC v2ray Valet Validation Validator VienBlog virtualenvs VPN VPS Vultr Web Windows WordPress Xcode yaml zip zmq zsh 下载图片 云主机 云服务器 人工智能 优化 优惠码 伪原创 作弊与反作弊 免费ss账号 免费提现 切片 前端 加密 协议 博客 友链 后台运行 命令 图片操作 图片转换 域名 大小写转换 姿态检测 安卓模拟器 安装 定时任务 定时执行 导出导入 延迟加载 慢查询 懒加载 提现 搜索引擎 搬瓦工 搭梯子 教程 数据库 文件上传 无法登录 日志 时区 时间戳 服务器 机器学习 梯子 模拟浏览器 港版支付宝 爬虫 生活服务 科学上网 系统升级 索引 编辑器 自动付款 英文伪原创 计划任务 计算机视觉 语法 远程连接 重定向 错误异常 错误提示 队列 阿里云 香港 香港手机号
亲情非友情链接