python文件转exe

Posted 樱花飞落ll

tags:

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

.py文件转exe文件

1.软件说明:

用python写一个视频处理软件,用到的库是moviepy

2.所用软件:

Python 3.6.5 32位

pycharm  专门的python编辑ide,推荐使用

pyinstaller

imageMagick.exe (记住他的安装路径,后面会用到)

注意事项:切记安装32位的python,因为32位python在64位系统上打包出来的exe文件可以在32和64位系统运行,反之不可以。我就是先装的64位,然后依赖都装完了才发现需要32位,又全部卸掉重新装,心好累

3.安装所需依赖:

安装moviepy:pip install moviepy

    装了imagemagic后可能还是会报错,找不到那个错的截图了,执行下面的命令即可解决:pip install python-magic-bin==0.4.14

安装requests:pip install requests

安装eyed3:pip install eyed3(我是用到了这个依赖,不用的可以不装)

安装打包工具pyinstaller:pip install pyinstaller

打包命令: pyinstaller –F –p moviepy; demo1.py

参数说明:-F 打包成一个文件

                       -p 把moviepy文件夹打包进去

 

4.遇到的问题

  4.1 windows下面python不能自动识别出imagemagick的安装目录,必须手动修改,

修改python  lib/site-packages/moviepy/config_defaults.py 到imagemagic的安装目录

IMAGEMAGICK_BINARY = r"C:\\Program Files\\ImageMagick-6.7.3-Q16\\convert.exe"

4.2用pyinstaller打包后报错:moviepy.audio.fx.all has no attribute of audio_fadein

解决方案:将python/lib/sitepackages/moviepy文件夹拷贝到demo1.py所在的目录,修改moviepy/audio/fx/all 下的__init__.py文件

将exec这句注释掉,然后具体列出引入的包,因为pyinstaller不认exec这种方式,

改成如图1的方式,然后打包的时候加上-p moviepy;即可解决问题

 

图1

 

4.3报错:libmagic not found.明明安装了magic依赖,可是Pyinstaller打包的时候打不进去,必须在.py文件夹下放置C:\\python32\\Lib\\site-packages\\magic下的libmagic文件夹和magic.py文件,打包好的exe文件也要有这两个东西,即如图2所示。要修改magic.py的156行,bin_dist_path = os.path.join(os.path.dirname(__file__), \'libmagic\')

修改为bin_dist_path = os.path.join(os.path.dirname(sys.executable), \'libmagic\')

 

 

图2

这些全都搞定之后,打包的exe文件就可以在windows32位和64位系统上运行了

 

写在最后的话:笔者为了解决4.2的问题在网上整整找了3天,参考了https://github.com/Zulko/moviepy/issues/263pratikone的回答才解决,所以请珍惜劳动成果,转载请注明出处

 

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

Python两个版本同时使用

python2.7 ocr 文本识别 怎么弄的啊?

使用控制台让 python 在 Windows XP 上以 UTF8 打印

C/C++ - Codeblocks 调试 MinGW GDB STL (查看容器数据)配置教程(完整版)

python 脚本转exe文件

python 脚本转exe文件