本文主要记录为史振华在尝试转换PY文件为EXE文件过程中各种疑惑和最终解决方法,尝试了PYTHON
2.7/3.5/3.6及其相关依赖pywin32-222.win32/pywin32-222.win-amd64。非常感谢IT笔记若能更早看过此文很有帮助,网上有大量相关文章但与本人现实中相当的不同。系统环境:Win7
Enterprise SP1/ intel i5-4310M CPU /System type:64-bit OS。2018/2/13

直接在命令行中安装pyinstaller

pip installer pyinstaller

Python pip是一个安装和管理 Python 包的工具 , 是 easy_install
的一个替换品。

工具

python-3.6.4-amd64.exe:

pywin32-222.win-amd64-py3.6.exe:

PyInstaller-3.3.1.tar:

下载安装pyinstaler运行时所需要的windows拓展—pywin32

pywin32下载地址:
pywin32
点击最新的Build,next click pywin32-220, choose win-amd64-py2.7.exe

这里要根据你的windows
x86或者x64和你的python版本来选择(笔者是x64),下载安装即可。

在命令行中切换到要打包的程序所在目录,直接输入下面的打包指令

pyinstaller -F -w -c -i [icon路径] [主程序入口路径]
pyinstaller -F -w -c -i D:workspacelogoauto_logo.ico D:workspacesrcmain_app.py

下面的表格是参数的意思,可以随意组合,一般这个示例就可以满足要求执行之后打包产生的文件如下图,文件夹会出现在和命令行当前位置同级目录下,
exe 文件在dist目录中

图片 1

out file dic

方法/步骤

运行python-3.6.4-amd64.exe,CPU是INTEL
i5看到AMD64多少有些别扭,能选都选上路径都不改完成安装。确定PATH:Computer-System
Properties-Advanced-Environment
Variables…
如:D:usersf29691aAppDataLocalProgramsPythonPython36。注意后续pywin32的版本需相同,PYTHON其他版本本身也能完成安装可最终安装PyInstaller或pywin32时报错无法顺利安装。

运行pywin32-222.win-amd64-py3.6.exe
安装中其会检测已安装的python版本,只有看到成功安装才有用。

解压PyInstaller-3.3.1.tar至D:根目录下,运行命令行CMD进入此目录,

//进入子目录 bootloader

cd bootloader

//build the bootloader 运行

python ./waf configure build install

//重新进入根目录

cd ..

//安装pyinstaller

python setup.py install

//from

#KEY#:安装中Reading
: Could not
find suitable distribution
forRequirement.parse(‘future’)可在浏览器中打开上述网站确定链接正常后CMD中再次python
setup.py install,亲测使用电信手机开热点给PC成功安装。

CMD至pyinstaller安装路径:pyinstaller –version命令

 D: PyInstaller-3.3.1>pyinstaller –version

3.3.1若不行会显示各种缺少文件和语法错误。

CMD至pyinstaller安装路径,尝试转化一个简单的*.PY成*.exe:

pyinstaller -F D:PYTHONSHI.py

生成的EXE文件会被归档到子文件夹dist中。

命令中各参数的意义:

参 数 含 义
-F 指定打包后只生成一个exe格式的文件
-D –onedir 创建一个目录,包含exe文件,但会依赖很多文件(默认选项)
-c –console, –nowindowed 使用控制台,无界面(默认)
-w –windowed, –noconsole 使用窗口,无控制台
-p 添加搜索路径,让其找到对应的库。
-i 改变生成程序的icon图标

原料

SHI.PY :功能为转换EXCEL文件名为AWL文件名内容未定。

import os;
print(“Hello, World!”);
#file_path=os.getcwd();
sourcefile=input(“Drap *.xls to this window”);
file_name=sourcefile+’.awl’
content=’Hellon,Worldt’
print(content);
print(file_name);
if os.path.exists(file_name):
    os.remove(file_name);
F=open(file_name,’a+’);
F.write(content);
F.write(“:D”);
F.close();
input();

相关文章