python 打包

Posted 记录——去繁就简

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 打包相关的知识,希望对你有一定的参考价值。

1,单文件打包

pyinstaller -F -w file.py

-F :

-w::启动exe文件,不显示控制台

2,多文件打包

 文件结构:test

      main.py

      set.py

如果使用:pyinstaller -F -w main.py
发生问题:相互依赖的文件,打包后无法引用,导致报错

可以使用:pyinstaller -D main.py -p set.py
假如还是报错:pyinstaller -D main.py -p set.py
--hidden-import set
假如还是报错(not moudle name):
      1,第三方包问题:方法一:在主文件中导入该包。
               方法二:在主文件打包的spec文件中的 hiddenimports=[],假如缺失包
       2,自己写的包:引用路劲的问题,不能使用相对路劲,要使用绝对路劲

 

 

当打包的exe,无法打开闪退,无法得知原因可以用cmd输入文件

cmd:

打包后显示缺失第三方包

但是pycharm安装此包,且程序运行良好。原因:cmd与pycharm下载的第三方包没有共享

解决方法一:用cmd在下载一编第三方包

解决方法二:pycharm共享第三方包

 

参考:(38条消息) 在cmd通过pip安装的第三方包与pycharm不通用的解决方法_cmd安装的模块如何导入pycharm_温暖的小冷风的博客-CSDN博客

python打包

一、RPM

准备环境

技术分享图片

安装脚本setup.py内容如下:

技术分享图片

在linux环境下执行打包编译命令: python2 setup.py bdist --formats=rpm

formats参数=wininst则会打包为.exe程序

技术分享图片

创建安装程序或包时,会出现一些错误和警告,只要看到

writing manifest file ‘MANIFEST‘
creating hello-1.0
making hard links in hello-1.0...
hard linking hello.py -> hello-1.0
hard linking setup.py -> hello-1.0
creating dist
tar -cf dist/hello-1.0.tar hello-1.0
gzip -f9 dist/hello-1.0.tar
tar -cf dist/hello-1.0.tar hello-1.0
gzip -f9 dist/hello-1.0.tar
removing ‘hello-1.0‘ (and everything under it)

类似的信息,就可以忽略告警和错误信息。

技术分享图片

pack目录下我放了两个模块,hello和hello_2,并且setup.py中参数也是py_modules=[‘hello‘,‘hello2‘],但是打包出来的tar包里,只有hello模块,这个比较奇怪~可能只能打包一个模块?·····

如果想重新构建,需要删除MANIFEST.in文件。

二、安装

发布的话,就直接发布hello-1.0.tar.gz。

 python setup.py install

 











以上是关于python 打包的主要内容,如果未能解决你的问题,请参考以下文章

Pycharm怎么打包Python脚本

请问python的打包程序 pyinstaller 怎么用啊?

python文件打包为bat用以分享

如何将一整个python工程打包

Pycharm怎么打包Python脚本

Pycharm怎么打包Python脚本