1、需要先在Python中安装pyinstaller,直接在cmd命令行用pip安装即可,即“pip install pyinstaller”。
2、比如我新建了一个Python文件,该文件的名字为“merge.py”(是将多个文本合并的方法),并在其中输入以下代码:
def merge(path, outpath): filelist = listdir(path) print() with open(outpath, 'wt', encoding='utf-8') as outfile: for filename in filelist: filepath = join(path, filename) print(filepath) with open(filepath, 'rU', encoding='utf-8') as infile: outfile.write(infile.read()) print() print('已经写入:', outpath) print()
3、这一步是最重要的一步,也就是调用上面的方法,调用代码在下方:
if __name__ == '__main__': #第一个参数表示多个文本所在的文件夹,第二个参数表示合并后的文件 merge(sys.argv[1], sys.argv[2]) #merge(r"D:\机器学习\pyinstallertest\test", r"D:\机器学习\pyinstallertest\all.txt")
上面的“if __name__ == '__main__'”应该能看懂吧,也就是我在这个py文件下运行是将执行下面的代码,如果是其他的py文件调用该文件,则不执行下面的代码。merge方法里的两个参数就是表示从cmd控制台传进来的。sys.argv[1]表示从控制台获取的参数
4、我们代码可不可以运行,在cmd控制台中实验一下,结果如图:
python文件名或路径 参数1 参数2
例如:python merge.py D:\机器学习\pyinstallertest\test D:\机器学习\pyinstallertest\all.txt
这就说明可以从cmd控制台向py文件中传递参数。下一步就是要打包成exe文件了。
5、用pyinstaller将py文件打包为exe格式,这样就可以在cmd控制台使用它了。只需在cmd控制台中输入以下代码(”-F”表示打包成一个exe文件,有兴趣的童鞋可以试一试不用”-F”):
pyinstaller -F 文件名 或者 pyinstaller-F 文件地址
例如:pyinstaller –F merge.py
结果如图,表明打包成exe成功:
6、检验打包后可不可以使用(注意:打包后的exe文件的位置即是上图第2个标红代码的所指示位置),我们在cmd中验证结果:
文件名或者文件地址 参数1 参数2
例如:merge D:\机器学习\pyinstallertest\test D:\机器学习\pyinstallertest\all.txt
这就说明我们成功了
注意:
a、 通过cmd命令行传进的参数全是字符串类型的。
b、 以上是在文件所在的文件夹下调用的cmd,所以不需要写明文件地址,如果不是在文件所在的文件夹下,则需要加上文件路径。(比如第4,5步是在"D:\机器学习\pyinstallertest\"文件夹下,第6步是在"D:\机器学习\pyinstallertest\dist\ "文件夹下)。
c、 以上实验是对于从cmd获取参数的,对于不需要获取参数的也同样适用,只是在cmd中不需要写参数而已。