当前位置:   article > 正文

PYTHON打包成EXE文件,能在没有环境的电脑上运行_一个python程序如何在没有python环境的pc机上运行,难道必须也要搭建python环境?

一个python程序如何在没有python环境的pc机上运行,难道必须也要搭建python环境?

一、pyhton 程序打包
安装pipinstaller,用于文件打包:

pip install pyinstaller -i https://pypi.tuna.tsinghua.edu.cn/simple
  • 1

生成main.py文件,内容如下:

def print_hi(name):
    # Use a breakpoint in the code line below to debug your script.
    print(f'Hi, {name}')  # Press Ctrl+F8 to toggle the breakpoint.
    
# Press the green button in the gutter to run the script.
if __name__ == '__main__':
    print_hi('PyCharm')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

在上面提到的 Terminal 命令行界面中输入:

pyinstaller -F main.py
  • 1
常用可选项及说明:
-F:打包后只生成单个exe格式文件;
-D:默认选项,创建一个目录,包含exe文件以及大量依赖文件;
-c:默认选项,使用控制台(就是类似cmd的黑框);
-w:不使用控制台;
-p:添加搜索路径,让其找到对应的库;
-i:改变生成程序的icon图标。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

其他参数:
https://blog.csdn.net/infent/article/details/84976312
https://blog.csdn.net/qq_40430818/article/details/121846273

即可对main.py文件进行打包,exe文件生成在dist文件夹中。

此时,由于我们打包的文件没有UI界面,双击exe后会快速闪退,我们需要在cmd中打开文件,看到输出如下:
在这里插入图片描述

注意,若需要使用虚拟环境中的其他库,以及项目内import的相关py文件,则需要使用以下命令:

pyinstaller -F -w pyqt5_test.py -p C:\Users\Administrator\anaconda3\envs\SyQuant\Lib\site-packages --hidden-import C:\Users\Administrator\Desktop\pyqt5
  • 1

其中,前一个路径为虚拟环境的包路径,后一个路径为项目文件路径。

二、如果用jpype调用了jar
python在生成exe时,如果代码中使用jpype调用了jar包,由于java需要将exe和jdk包含在一个文件下,所以要将本地的jre整个文件夹放入项目中,然后获取jre\bin\server\jvm.dll的路径。如第12行代码

import jpype
import os
 
def pyToJava():
    # 使用idea生成的jar包的路径
    jarpath = os.path.join(os.path.abspath('.'), r'E:\Python\Project\py_jar\myJava.jar')
 
    # jar包需要的依赖的路径
    dependency = os.path.join(os.path.abspath('.'), 'E:\Python\Project\py_jar\dependency')
 
    # 获取jvm.dll的路径
    jvmPath = os.path.join(os.path.abspath('.'), 'jre\bin\server\jvm.dll')
 
    # 启动java虚拟机,入参:jvm.dll路径、jar包路径、依赖包路径
    jpype.startJVM(jvmPath, "-ea", "-Djava.class.path=%s" % jarpath, "-Djava.ext.dirs=%s" % dependency)
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号