Ubuntu上python打包为可执行文件方法
一、Ubuntu上python打包为可执行文件(包含pyecharts)
- python文件打包有很多方法,本文介绍重点介绍的是pyinstaller方法,本文也是记录自己在ubuntu上打包踩的坑!
1、首先先安装pyinstaller
#安装pyinstaller
1 pip install pyinstaller
#检查pyinstaller版本
2 pyinstaller --version
2、安装好pyinstaller后,开始按照网上教程直接打包py文件,进入要打包的py文件路径下,打开终端输入以下命令
1 pyinstaller -F xxx.py
- 运行后报以下错误
On Debian / Ubuntu,You would need to install Python development packagesapt-get install python3-devapt-get install python-dev
If you‘re building Python by yourself,please rebuild your Python with --enable-shared`
- 这个时候,就需要去安装以下python3-dev,但是由于ubuntu自带python2.7以及python3.5,自己又安装了python3.7,所以直接安装python3.7-dev就可以了
#打开终端输入
1 apt-get install python3.7-dev
- 安装好python3.7-dev后,在将用pip将development安装
1 pip install development
- 再用pyinstaller重新打包,这次可以打包成功,在py文件夹同路径下,生成build、disk两个文件夹加上一个spec文件,可执行文件就在disk文件夹内,打开终端进入到disk文件夹,./xxx运行打包好的文件
二、运行打包后的可执行文件时遇到问题(坑坑坑)
1、运行时,发现提示pyecharts模块没有打包到可执行文件里,后来百度之后才发现,pyinstaller模块没有对pyecharts模块提供响应的支持,所以百度了一些方法,需要在
/home/y/PycharmProjects/pythonProject2/venv/lib/python3.7/site-packages/PyInstaller/hooks 路径下增加如下文件:
文件名:hook-pyecharts.py
文件内容:
#-----------------------------------------------------------------------------
# Copyright (c) 2017-2020, PyInstaller Development Team.
#
# Distributed under the terms of the GNU General Public License (version 2
# or later) with exception for distributing the bootloader.
#
# The full license is in the file COPYING.txt, distributed with this software.
#
# SPDX-License-Identifier: (GPL-2.0-or-later WITH Bootloader-exception)
#-----------------------------------------------------------------------------# Hook for nanite: https://pypi.python.org/pypi/nanitefrom PyInstaller.utils.hooks import collect_data_filesdatas = collect_data_files('pyecharts')
- 然后删除刚刚打包的文件,用下列命令重新打包
pyinstaller -F WinPerformCollect.py --hidden-import cmath
- 再运行.py程序就可以正常运行了
2、由于代码运行结果包含在现有目录创建result文件夹,就报了os.makedirs创建文件夹没有权限错误
百度原因后:解释是根据官方Python documentation的os.makedirs功能模式参数可能在某些系统上被忽略,在哪里则不能忽略系统当前的umask值被屏蔽掉。
#将代码行里os.makedirs强制模式为0o777
os.makedirs(res_dir_path, 0o777)
又重新打包该.py文件后,可正常运行
本文为自己使用时遇到的一些问题,记录一下!
Ubuntu上python打包为可执行文件方法相关推荐
- ubuntu下将python打包成可执行文件
ubuntu下将python打包成可执行文件 安装pyinstaller 准备好python文件 打包成可执行文件 安装pyinstaller pip install pyinstaller 准备好p ...
- Ubuntu安装Python的相对简单方法
Ubuntu安装Python的相对简单方法 1. 需求和来源 2. 拯救者 apt 3. 安装Python 1. 需求和来源 在不同的Ubuntu系统中默认安装的Python版本也是不一样 有时候相关 ...
- python打包为可执行文件的扩展名,Python脚本文件(.py)打包为可执行文件(.exe)即避免命令行中包含Python解释器...
在最近的软件工程作业中用到了将Python脚本转化为exe文件这一过程,网上各种博客介绍了很多,有些东西都不完全,我也是综合了很多种方法最后才实现的,我就把这些整理出来,希望可以帮到大家~ 一.环境和 ...
- 【Python打包成exe方法】——已解决导入第三方包无法打包的问题
前言 在我们写代码的过程中,我们开发的脚本一般都会用到一些第三方包,可能别人也需要用到我们的脚本,如果我们将我们的xx.py文件发给他,他是不能直接用的,他还需要安装python解释器,甚至还要安装我 ...
- Ubuntu上用caffe的SSD方法训练Pascal VOC数据集
实验目的 继caffe和ssd搭建完成,demo也演示完毕,了解一些基本知识后,现在开始训练自己的数据集,在给自己的训练集处理之前,先跟着官方的示例将Pascal VOC数据集训练走一遍,把可能会踩坑 ...
- Python打包(可执行文件)
python打包exe程序文件(可执行文件) 众所周知,我们想把 ".py"文件转换成 ".exe" 可执行文件,就要对该文件进行打包. 工具:Pyinstal ...
- python打包成可执行文件_将Python文件打包成.EXE可执行文件的方法
利用Python写了一个小脚本想要传给使用Windows但没有装Python的朋友执行,这时候就可以利用将档案包装成exe档案,让没有Python的朋友也可以执行.本篇将介绍利用套件「PyInstal ...
- python打包成可执行文件_python文件打包为exe可执行文件的方法
我自己常用Pyinstaller库打包 第一步: 安装pyinstaller库 pip install pyinstaller 第二步: 在py文件所在目录输入 mydemo.py是自己写的py文件 ...
- python打包安卓的方法_打包发布Python模块的方法详解
前言 昨天把自己的VASP文件处理库进行了打包并上传到PyPI,现在可以直接通过pip和easy_install来安装VASPy啦(同时欢迎使用VASP做计算化学的童鞋们加星和参与进来), 由于自己的 ...
最新文章
- 【C 语言】数据类型本质 ( sizeof 函数 | 数据类型大小 )
- BUUCTF-WEB:[极客大挑战 2019]Havefun 1
- 带宽限制下的视觉实体属性传播
- 6 useRef、useImperativeHandle
- 构建LAMP平台及应用系统
- MongoDB 自动删除集合中过期的数据——TTL索引
- Android图片压缩,不失真,上线项目
- Ubuntu下搜狗输入法突然无法输入中文
- MySQL服务安全加固及防护
- pdf压缩文件怎么压缩最小?
- 中西方对时间的差异_中西方文化交际中时间观的差异对比
- Java 断点续传以及在线视频播放可选择任一时间播放原理
- Titan XP值不值?一文教你如何挑选深度学习GPU
- 大数据、Java、Python、区块链、人工智能前景简单对比
- 树 —— 线索二叉树
- Kryo:快速、高效的序列化框架
- Lycn 2013 with SQL AlwaysOn 「一」建立AlwaysOn
- Post和Get,Post和Put请求的区别
- 芯片之家——为开源而生
- 计算机程序设计基础----习题4
热门文章
- 狂神Java面试题总结:基础及语法169道
- 新浪博客的等级、积分的规则_我是亲民_新浪博客
- 计算机c盘永不休眠,电脑高手用这4招,终于解决了C盘空间不足的问题,这操作服了!...
- 鼠笼式三相异步电机 | 起动、调速、制动原理与Simulink仿真
- 画图软件--亿图图示专家中文显示
- /gcc/bin/../lib/gcc/mingw32/6.3.0/../../../libmingw32.a(main.o):(.text.startup+0xa0): undefined refe
- 【GO语言】棋牌游戏服务器
- 【Prompt】7 个向 chatGPT 高效提问的方法
- 社交电商进击旅游业,能跑出一个巨头来吗
- 搭建.net开发环境以及配置工程(win10环境)