本文目录一览:
- 1、python setup.py打包时,如果除了.py文件外,还有一个文件夹需要打包应该怎么办
- 2、怎么将多个python打包成exe文件
- 3、Python打包输入pip install pyinstaller 失败 这是啥意思 版本不行吗?
- 4、Linux下,Python项目包含多个模块以及图片包,跪问如何用pyinstaller将其打包在一起?
- 5、pyinstaller 如何打包图片资源的?
python setup.py打包时,如果除了.py文件外,还有一个文件夹需要打包应该怎么办
如果是一个 Python 包的文件夹,应当在 setup.py 中作为 package 引入;如果是其他类型的文件夹,比如资源文件,图片文件,可以以 resource dir 引入,具体引入方式可以参照官方文档
怎么将多个python打包成exe文件
1、安装pywin32,可以参考《怎么给python安装pywin32模块?》,一定要注意对应的python版本,否则不能安装。
2、用命令行调用pip安装pyinstaller。
3、准备一个py文件,一个爬取电子书的python文件——00.py。
4、准备一个图片,作为exe的图标:b.ico,注意图片格式是ico的,大小为32*32,不要太大。没有的话,可以在网上免费转格式。把00.py和b.ico放到一个目录里面——C:\a
5、把cmd的当前目录切换到C:\a。
6、然后执行命令行: pyinstaller -F -i b.ico 00.py
7、运行之后,cmd变成了这样。
8、在C:\a目录里面,多出了几个文件夹。可执行文件00.exe就在dist文件夹里面。
9、双击可执行文件,会弹出一个命令提示符端口,提示你输入书号。按照格式输入书号,点击回车键,就可以在dist文件夹里面,看到一章章的电子书被下载下来了。
Python打包输入pip install pyinstaller 失败 这是啥意思 版本不行吗?
您输入的代码可能不是打包代码,而是下载打包软件的代码。
正常的代码是这样的:
Pyinstaller -F "C:\test.py" -i "C:\1.ico"
您的第一张图片的意思应该是:下载xx(某某)完成
第二张图片的代码不是打包代码,所以系统不识别。所以出错了
若有疑问请追答,谢谢!
Linux下,Python项目包含多个模块以及图片包,跪问如何用pyinstaller将其打包在一起?
python的模块,pyinstall会自动编译为字节码然后一起打包。
至于另外的图片等资源文件,需要自行书写打包配置文件spec。
先用pyinstaller 的 --onefile 选项自动生成一个spec文件,
然后修改这个spec文件案,如要加入图片等附属文件,
要加入到datas中,格式如下:
datas += [("软件包内的相对路径/file.name","/实际路径/file.name","DATA")]
文件列表也可以用Tree生成。Tree("/实际路径/file.name”, prefix = “软件包内的相对路径”)
下面是一个spec文件的例子
a = Analysis(["/tmp/start.py"],
pathex=["/tmp"],
hiddenimports=[],
hookspath=None,
runtime_hooks=None
dict_tree = Tree("/tmp/pic", prefix = "pic")
a.datas += dict_tree
pyz = PYZ(a.pure)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
name="test",
debug=False,
strip=None,
console=False )
pyinstaller 如何打包图片资源的?
问题描述:
使用 pyinstaller -F ***.py 打包后,运行闪退,
提示找不到资源文件。
解决方法:
实验数据处理需要,之前用Python写了一个小程序,为了方便使用就用Tk写了个界面,打包时遇到了如题一样的困惑,不过参考pyinstaller的官方文档解决了,所以建议遇到类似问题的时候官方文档是第一参考,以免浪费时间。下面是将打包数据文件的绝对路径转为相对路径的一个脚本,利用的是os的path模块和 sys._MEIPASS:from os import pathimport sysbundle_dir = getattr(sys, '_MEIPASS', path.abspath(path.dirname( file )))path_to_dat = path.join(bundle_dir, 'other-file.dat')将这个脚本加入到主脚本文件中,用转换的路径代替原来脚本中数据文件的绝对路径即可。打包数据可以利用--add-data命令或者使用.spec文件,不多赘述Reference:
尝试了成功解决: