欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python to Exe By Install PyInstaller on Win7-64bit

程序员文章站 2022-05-28 12:33:58
本文主要记录为史振华在尝试转换PY文件为EXE文件过程中各种疑惑和最终解决方法,尝试了PYTHON 2.7/3.5/3.6及其相关依赖pywin32-222.win32/pywin32-222.win-amd64。非常感谢IT笔记https://www.cnblogs.com/osfipin/p/4 ......

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

工具

python-3.6.4-amd64.exe:https://www.python.org/downloads/windows/

pywin32-222.win-amd64-py3.6.exe:https://github.com/mhammond/pywin32/releases

PyInstaller-3.3.1.tar:https://github.com/pyinstaller/pyinstaller

方法/步骤

运行python-3.6.4-amd64.exe,CPU是INTEL i5看到AMD64多少有些别扭,能选都选上路径都不改完成安装。确定PATH:Computer-System Properties-Advanced-Environment Variables...如:D:\users\f29691a\AppData\Local\Programs\Python\Python36。注意后续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 http://www.cnblogs.com/osfipin

#KEY#:安装中Reading https://pypi.python.org/simple/future/等一系列依赖,若error: 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:\PYTHON\SHI.py

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

原料

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='Hello\n,World\t'
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();