python打包成linux可执行文件_python打包成linux 可执行文件 - CSDN
精华内容
参与话题
  • 使用PyInstaller打包python文件 在和myscript.py同目录下执行命令:pyinstaller mycript.py然后会看到新增加了两个目录build和dist,dist下面的文件就是可以发布的可执行文件, 你会发现dist目录下面有一堆...

    1.安装PyInstaller

        pip install pyinstaller

        pyinstaller --version

    2.使用PyInstaller打包python文件

      在和myscript.py同目录下执行命令:
    pyinstaller mycript.py然后会看到新增加了两个目录build和dist,dist下面的文件就是可以发布的可执行文件,
    你会发现dist目录下面有一堆文件,各种都动态库文件和myscrip可执行文件
    
    
    pyInstaller支持单文件模式,只需要执行:
    pyinstaller -F mycript.py
    你会发现dist下面只有一个可执行文件,这个单文件就可以发布了,可以运行在你正在使用的操作系统类似的系统的下面。


    展开全文
  • Python程序打包成exe可执行文件

    万次阅读 多人点赞 2017-08-02 16:04:20
    Python程序打包工具 Python是一个脚本语言,被解释器解释执行。它的发布方式: .py文件:对于开源项目或者源码没那么重要的,直接提供源码,需要使用者自行安装Python并且安装依赖的各种库。(Python官方的...

    Python程序打包工具

    Python是一个脚本语言,被解释器解释执行。它的发布方式:

    • .py文件:对于开源项目或者源码没那么重要的,直接提供源码,需要使用者自行安装Python并且安装依赖的各种库。(Python官方的各种安装包就是这样做的)。
    • .pyc文件:有些公司或个人因为机密或者各种原因,不愿意源码被运行者看到,可以使用pyc文件发布,pyc文件是Python解释器可以识别的二进制码,故发布后也是跨平台的,需要使用者安装相应版本的Python和依赖库。
    • 可执行文件:对于非码农用户或者一些小白用户,你让他装个Python同时还要折腾一堆依赖库,那简直是个灾难。对于此类用户,最简单的方式就是提供一个可执行文件,只需要把用法告诉他即可。比较麻烦的是需要针对不同平台需要打包不同的可执行文件(Windows, Linux, Mac,...)。

    .py和.pyc都比较简单,Python本身就可以搞定。将Python脚本打包成可执行文件有多种方式。

    各种打包工具的对比如下

    Solution

    Windows

    Linux

    OS X

    Python 3

    One

    file mode

    Zipfile import

    Eggs

    pkg_resources support

    bbFreeze

    yes

    yes

    yes

    no

    no

    yes

    yes

    yes

    py2exe

    yes

    no

    no

    yes

    yes

    yes

    no

    no

    pyInstaller

    yes

    yes

    yes

    no

    yes

    no

    yes

    no

    cx_Freeze

    yes

    yes

    yes

    yes

    no

    yes

    yes

    no

    py2app

    no

    no

    yes

    yes

    no

    yes

    yes

    yes

            其中pyInstaller和cx_Freeze都是不错的,stackoverflow上也有人建议用cx_Freeze,说是更便捷些。pkg_resources新版的pyInstaller貌似是支持的。


    PyInstaller

    安装pyinstaller

    对于那些网络比较稳定,能够流畅使用pip源地址的用户,直接下面的命令就可以搞定:

    pip install pyinstaller

    通常我们会下载源码包,然后进入包目录,执行下面的命令(需要安装setuptools):

    python setup.py install

    安装完后,检查安装成功与否:

    pyinstaller --version

    安装成功后,就可以使用下面的命令了:

    • pyinstaller : 打包可执行文件的主要命令,详细用法下面会介绍。
    • pyi-archive_viewer : 查看可执行包里面的文件列表。
    • pyi-bindepend : 查看可执行文件依赖的动态库(.so或.dll文件)
    • pyi-... : 等等。

    使用PyInstaller

            pyinstaller的语法:pyinstaller [options] script [script...] | specfile

            最简单的用法,在和myscript.py同目录下执行命令:

             pyinstaller mycript.py

             然后会看到新增加了两个目录build和dist,dist下面的文件就是可以发布的可执行文件,对于上面的命令你会发现dist目录下面有一堆文件,各种都动态库文件和myscrip可执行文件。有时这样感觉比较麻烦,需要打包dist下面的所有东西才能发布,万一丢掉一个动态库就无法运行了,好在pyInstaller支持单文件模式,只需要执行:

            pyinstaller -F mycript.py

            你会发现dist下面只有一个可执行文件,这个单文件就可以发布了,可以运行在你正在使用的操作系统类似的系统的下面。当然,pyinstaller还有各种选项,有通用选项,如-d选项用于debug。

            在执行pyInstaller命令的时候,会在和脚本相同目录下,生成一个.spec文件,该文件会告诉pyinstaller如何处理你的所有脚本,同时包含了命令选项。一般我们不用去理会这个文件,若需要打包数据文件,或者给打包的二进制增加一些Python的运行时选项时...一些高级打包选项时,需要手动编辑.spec文件。可以使用:

            pyi-makespec optionsscript [script ...]

            创建一个.spec文件,对于手动编辑的.spec文件,我们可以使用下面任意一条命令:

            pyinstaller specfile

            pyi-build specfile


    PyInstaller原理简介

            PyInstaller其实就是把python解析器和你自己的脚本打包成一个可执行的文件,和编译成真正的机器码完全是两回事,所以千万不要指望成打包成一个可执行文件会提高运行效率,相反可能会降低运行效率,好处就是在运行者的机器上不用安装python和你的脚本依赖的库。在Linux操作系统下,它主要用的binutil工具包里面的ldd和objdump命令。

            PyInstaller输入你指定的的脚本,首先分析脚本所依赖的其他脚本,然后去查找,复制,把所有相关的脚本收集起来,包括Python解析器,然后把这些文件放在一个目录下,或者打包进一个可执行文件里面。

            可以直接发布输出的整个文件夹里面的文件,或者生成的可执行文件。你只需要告诉用户,你的应用App是自我包含的,不需要安装其他包,或某个版本的Python,就可以直接运行了。

            需要注意的是,PyInstaller打包的执行文件,只能在和打包机器系统同样的环境下。也就是说,不具备可移植性,若需要在不同系统上运行,就必须针对该平台进行打包。


    实践问题

            pyinstaller打包后的exe运行怎么去掉弹出的命令行提示窗口?

            1.如果使用.spec文件的话, 在该文件中找到console=True修改为console=False

            2.如果是直接指定python文件进行pyinstaller打包的话,需要添加—noconsole

            pyinstaller path\\mycode.py--noconsole

            如果想只打包成一个exe:

            pyinstaller -F path\\mycode.py --noconsole

           或:

            pyinstaller -F -wpath\\mycode.py

            更换最终exe生成路径

            在cmd中,一开始就要 cd D:\PythonEXE\ 切换到输出文件夹,然后在用上面的代码,说明:各个参数的作用,

            例子:pyinstaller -F -w -pD:\tmp\core-python\libs -i d:\tmp\main.ico main.py

            -F 表示生成单个可执行文件;

            -D  –onedir 创建一个目录,包含exe文件,但会依赖很多文件(默认选项)。

            -w 表示去掉控制台窗口,这在GUI界面时非常有用。不过如果是命令行程序的话那就把这个选项删除吧!;

            -c  –console, –nowindowed 使用控制台,无界面(默认);

            -p 表示你自己自定义需要加载的类路径,一般情况下用不到;

            -i 表示可执行文件的图标。


    py2exe

             py2exe似乎只能支持python3.3pyhton3.4

             py2exe是一个将python脚本转换成windows上的可独立执行的可执行程序(*.exe)的工具,这样,你就可以不用装python而在windows系统上运行这个可执行程序。 

            py2exe已经被用于创建wxPython, Tkinter, Pmw, PyGTK, pygame,win32com client和server,和其它的独立程序。py2exe是发布在开源许可证下的。

    py2exe的用法 

            如果你有一个名为myscript.py的python脚本,你想把它转换为运行在windows上的可执行程序,并运行在没有安装python的 windows系统上,那么首先你应写一个用于发布程序的设置脚本例如mysetup.py,在其中的setup函数前插入语句import py2exe 。 

    mysetup.py示例如下: 

    # mysetup.py 

    from distutils.core import setup 

    import py2exe 

    setup(console=["myscript.py"]) 

    然后按下面的方法运行mysetup.py: 

    python mysetup.py py2exe 

            上面的命令执行后将产生一个名为dist的子目录,其中包含了myscript.exe,python24.dll,library.zip这些文件。

            如果你的myscript.py脚本中用了已编译的C扩展模块,那么这些模块也会被拷贝在个子目录中,同样,所有的dll文件在运行时都是需要的,除了系统的dll文件。 dist子目录中的文件包含了你的程序所必须的东西,你应将这个子目录中的所有内容一起发布。

            默认情况下,py2exe在目录dist下创建以下这些必须的文件: 

            1、一个或多个exe文件。

            2、python##.dll。

            3、几个.pyd文件,它们是已编译的扩展名,它们是exe文件所需要的;加上其它的.dll文件,这些.dll是.pyd所需要的。 

            4、一个library.zip文件,它包含了已编译的纯的python模块如.pyc或.pyo 上面的mysetup.py创建了一个控制台的myscript.exe程序,如果你要创建一个图形用户界的程序,那么你只需要将mysetup.py中的console=["myscript.py"]替换为windows=["myscript.py"]既可。 

            py2exe一次能够创建多个exe文件,你需要将这些脚本文件的列表传递给console或windows的关键字参数。如果你有几个相关联的脚本,那么这是很有用的。 

            运行下面个命令,将显示py2exe命令的所有命令行标记。 

            python mysetup.py py2exe--help 


    指定额外的文件 

           一些应用程序在运行时需要额外的文件,诸如配置文件、字体、位图。 如果在安装脚本中用data_files可选项指定了那些额外的文件,那么py2exe能将这些文件拷贝到dist子目录中。data_files应包含一个元组(target-dir, files)列表,其中的files是这些额外的文件的列表。 

    示例如下: 

    # mysetup.py

    from distutils.core import setup

    import glob

    import py2exe 

     

    setup(console=["myscript.py"], 

    data_files=[("bitmaps", ["bm/large.gif","bm/small.gif"]), ("fonts", glob.glob("fonts\\*.fnt"))], ) 

    说明:data_files选项将创建一个子目录dist\bitmaps,其中包含两个.gif文件;一个子目录dist\fonts,其中包含了所有的.fnt文件。

     

    Windows NTservices 

            你可以通过传递一个service关键字参数给setup函数来建造Windows NT services ,这个service参数的值必须是一个Python模块名(包含一service类)的列表。 

    示例如下: 

    # mysetup.py

    from distutils.core import setup

    import py2exe

    setup(service=["MyService"]) 

    所建造的可执行的service是可以通过在其后跟一定的命令行参数标记来自行安装和卸载的。

    展开全文
  • linux下将Python脚本打包可执行文件

    千次阅读 2017-04-27 13:51:46
    一. 下载pyinstaller链接二. 解压无需安装,解压即可使用三. 输入命令,进行打包 命令格式: pyinstaller_path/pyinstaller.py -F source.py 命令执行后,在当前目录中会出现一个dist...生成的可执行文件在这个目录下。

    一. 下载pyinstaller

    链接

    二. 解压

    无需安装,解压即可使用

    三. 输入命令,进行打包

    • 命令格式:
    pyinstaller_path/pyinstaller.py -F source.py
    • 命令执行后,在当前目录中会出现一个dist目录。生成的可执行文件在这个目录下。
    展开全文
  • 听说pyinstaller多平台支持的比较好,考虑在linux(redhat 6 32-bit)上装个pyinstall, 不过真的是遇到太多问题了。。。下面是安装和使用流程: 安装使用流程 1. 首先给系统装个easy_install, 如果装...

    听说pyinstaller多平台支持的比较好,考虑在linux(redhat 6 32-bit)上装个pyinstall,

    不过真的是遇到太多问题了。。。下面是安装和使用流程:

    安装使用流程

    1. 首先给系统装个easy_install, 如果装了的可以跳过这步
    到pypi官方网址 https://pypi.python.org/pypi/setuptools 去download最新版本

    2. 官网上下载pyinstaller,当前的最新版本是2.1
    (1) 网址 http://www.pyinstaller.org/

    3.解包进入源码目录
    (1)tar -zxvf pyinstaller_2.1.tar.gz
    (2)cd pyinstaller-2.1 运行 python setup.py install

    4. 拷贝py文件
    将需打包的py文件如test.py 拷贝到当前目录

    5. 生成可执行文件
    cd到pyinstaller目录, 执行  python pyinstaller.py test.py

    可能遇到的问题

    1. 用户权限
    直接在root用户下运行pyinstaller会报错 “cannot run pyinstaller as user root"...
    所以需新增另外一个用户,并给用户对pyinstaller所在的目录及所有父目录添加读写权限,避免运行后报‘mkdir’ permission denied...

    2. 找不到python lib动态库
    su切换到新增用户后,
    pyinstaller报错找不到python动态库
    raise IOError("Python library not found!")
    IOError: Python library not

    执行python --version查看当前版本,并查找/usr/local/lib 下有没有对应版本的libpython*.*.so文件,
    如果有则跳过这步,如果没有则需要重新安装python,在python安装配置中一定要加上--enable-shared参数就可以生成对应动态链接库,如:
    #./configure --enable-shared --prefix=/usr/local
    #make
    #make install
    我环境中更新过python版本,导致/usr/lib下不是最新版本的库文件,需要将新版本拷贝到对应的/usr/lib目录下,注意有两个文件:
    #cp libpython*.so /usr/lib/
    #ln -s /usr/lib/libpython*.so.1.0 /usr/lib/libpython*.so


    展开全文
  • 咨询下,windows下开发的python程序,能不能直接在windows下打包成linux可执行文件,在linux下装依赖包装不明白了,求老司机给普及下!
  • linux程序打包 使用的是pyinstaller 打开终端 sudo pip pyinstaller 报错 是pip出现的bug sudo vi /usr/bin/pip 最后三行改成下所示 from pip import main if name == ‘main’: sys.exit(main._main()) 输入:wq ...
  • python文件打包为windows linux可执行的二进制文件 日期:2018年08月15日 环境准备 确保.py文件在当前python环境下可正常运行 python环境建议:python3.5(官方版)pyinstaller 3.3.1 anaconda3.6...
  • Python是解释性语言,我们如何将普通的Python项目(含有依赖,redis)打包成可运行的一个文件(实际为文件夹吧)。下面描述一个基本流程,供大家参考。以下流程是我们实际线上REDIS数据修改的一个需求,可以简单的...
  • linux环境打包python工程为可执行程序

    千次阅读 2019-03-14 15:36:21
    本次又个需求,在ubuntu上面开发的python代码程序需要打包成一...不是打包成在window上的可执行程序,如果需要打包成windows上的可执行程序请参照此博客,链接:windows下打包python源码成可执行文件 本次在ubun...
  • Python项目打包发布方法

    万次阅读 多人点赞 2020-03-01 19:31:21
    目前python打包工具有多个,目前比较好用的为pyinstaller,该工具可以支持在window和linux下使用。 在windows下,大小为几十K的源文件打包exe文件,可能为几十兆,原因是把程序所引用的库文件也一起打包在一起。...
  • 在Windows下把python转化成可执行程序还是比较简单,用py2exe就可以了。Linux下比较方便的有这么几种:1. py2installer
  • Python开发 之 Python3打包(windows/linux)详解

    万次阅读 多人点赞 2020-04-13 09:17:52
    文章目录1、唠唠叨叨2、背景3、Python打包工具3.1、py2exe3.2、cx_Freeze3.3、PyInstaller4、Windows打包4.1、单个文件打包4.1.1、核心源码4.1.2、程序运行4.1.3、打包4.1.4、打包后效果4.2、多个文件打包4.2.1、...
  • Python 如何将项目打包成exe可执行程序

    万次阅读 多人点赞 2019-05-23 13:51:29
    大家都知道,Python是一种脚本语言,也就是解释型的语言,需要解释器来进行解释以后才可以执行,而Python源代码需要在Python虚拟机上面运行,但是我们做好的程序,不可能给用户使用的时候还让他安装一个Python环境,...
  • python源文件打包成exe文件
  • python3.6打包成exe可执行文件,已解决方案

    万次阅读 多人点赞 2019-04-04 14:28:15
    python程序打包成exe可执行文件有多种方法,这里讲一种最简单最常用的方法,只需要使用pyinstaller命令即可。 一、环境 Windows 7或10 x64 Python 3.6.1 二、需要包 pyinstaller 3.3 pywin32 这里需要注意...
  • 如何将python3.6软件的py文件打包成exe程序

    万次阅读 多人点赞 2017-09-30 19:42:26
    在我们完成一个Python项目或一个程序时,希望将Python的py文件打包成在Windows系统下直接可以运行的exe程序。在浏览网上的资料来看,有利用pyinstaller和cx_Freeze进行打包的方法。关于cx_Freeze打包的方法,可以...
  • linux下使用pyinstaller打包python脚本

    千次阅读 2018-06-14 12:43:47
    最近给运维写一个系统维护的python脚本,但是被告知生产环境有很多服务器没有安装python解释器,于是在网上搜索多pyinstaller解决方案,本文简单记录之。 下载pyinstaller。 最新的pyinstaller版本为2.0版本,...
  • 由于Python程序的执行依赖于其环境,不能在操作系统下直接运行,因此在某些情况下需要将将Python源程序(.py文件)转换为可执行文件(.exe文件),这篇文章就来告诉大家如何将.py文件打包成.exe文件。 方法是安装一...
  • pyinstaller库,是一个将Python语言脚本(.py文件打包成可执行文件的第三方库,可用于windows\linux\Mac OS X等操作系统。 pyinstaller需要在命令行(控制台)下使用pip/pip3工具安装,代码如下: pip3 ...
  • Python脚本在Windows下后台运行

    万次阅读 2017-11-20 21:46:26
    Python脚本在Linux后台执行加个&就行了 在Windows起Python服务总有不畅 查了一下,可以用start /b python xxx.py后台运行, ...第一步,将Python脚本打包成exe可执行文件,详见:   用python
1 2 3 4 5 ... 20
收藏数 21,087
精华内容 8,434
关键字:

python打包成linux可执行文件