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下面只有一个可执行文件,这个单文件就可以发布了,可以运行在你正在使用的操作系统类似的系统的下面。


    展开全文
  • 1、安装pyinstaller pip install pyinstaller 2、编译 pyinstaller -F -w game.py (-F表示...pyinstaller -F -w -i bitbug_favicon.ico game.py (-i用来设置编译成exe文件的图标,后面跟.ico格式的图片文件) ...

    背景:

    Python 程序都是脚本的方式,一般是在解析器里运行,如果要想要给别的计算机使用,需要提前安装Python解析器和相关包才可以运行,为了在 Windows(或其它系统里) 里方便发布,我们将.py文件,编译成一个可执行文件,并且打包所需要库文件,只需要点击一个可执行文件运行,而无需安装Python和相关库文件。这样发布给用户使用何不美哉。

    我们的主角 :PyInstaller

    PyInstaller 是一个十分有用的第三方库,可以用来打包 python 应用程序,打包完的程序就可以在没有安装 Python 解释器的机器上运行了。

    PyInstaller将 Python应用程序冻结(打包)在Windows,GNU / Linux,Mac OS X,FreeBSD,Solaris和AIX下的独立可执行文件中。
    与类似工具相比,PyInstaller的主要优势在于PyInstaller可与Python 2.7和3.5-3.7一起使用;由于透明压缩,它可生成较小的可执行文件;它是完全多平台的;并且使用OS支持来加载动态库,从而确保完全兼容。

    PyInstaller的主要目标是开箱即用地与第三方软件包兼容。这意味着,使用PyInstaller,使外部软件包正常工作所需的所有技巧已 集成在PyInstaller本身中,因此无需用户干预。您将不需要在Wiki中寻找技巧,也可以对文件或设置脚本进行自定义修改。例如,完全支持PyQt,Django或matplotlib之类的库,而无需手动处理插件或外部数据文件。

    使用

    1.安装pyinstaller
    pip install pyinstaller
    
    2.进入安装工作环境
    1. Win+R运行打开CMD
      在这里插入图片描述
      在这里插入图片描述

    2. 进入工作目录,即所编译.py文件的路径
      右键点击Python文件,属性中即可获得路径。
      在这里插入图片描述
      利用cd命令进入工作目录:

      cd C:\Users\张小胖\Desktop
      

      在这里插入图片描述

    3. 生成不自定义图标的exe文件
    pyinstaller -F -w game.py  (-F表示打包单个文件,-w是为了打开exe时候不弹出黑框)
    
    4.生成带自定义图标的exe文件

    在这里插入图片描述

    pyinstaller -F -w -i use.ico demo.py  (-i用来设置编译成exe文件的图标,后面跟.ico格式的图片文件)
    

    PyInstaller 支持的常用选项

    -h,--help 查看该模块的帮助信息
    -F,-onefile 产生单个的可执行文件
    -D,--onedir 产生一个目录(包含多个文件)作为可执行程序
    -a,--ascii 不包含 Unicode 字符集支持
    -d,--debug 产生 debug 版本的可执行文件
    -w,--windowed,--noconsolc 指定程序运行时不显示命令行窗口(仅对 Windows 有效)
    -c,--nowindowed,--console 指定使用命令行窗口运行程序(仅对 Windows 有效)
    -o DIR,--out=DIR 指定 spec 文件的生成目录。如果没有指定,则默认使用当前目录来生成 spec 文件
    -p DIR,--path=DIR 设置 Python 导入模块的路径(和设置 PYTHONPATH 环境变量的作用相似)。也可使用路径分隔符(Windows 使用分号,Linux 使用冒号)来分隔多个路径
    -n NAME,--name=NAME 指定项目(产生的 spec)名字。如果省略该选项,那么第一个脚本的主文件名将作为 spec 的名字

    PyInstaller 会对脚本进行解析,并做出如下动作:

    1. 在工作目录生成 helloworld.spec 文件;

    2. 创建一个 build 文件夹;

    3. 写入一些日志文件和中间流程文件到 build 文件夹;

    4. 创建 dist 文件夹;

    5. 生成可执行文件到 dist 文件夹;

    6. 如果编译中出现错误,会生成debug.log的日志文件;

    内部流程
    C:\Users\张小胖\Desktop>pyinstaller -F -w demo.py
    46 INFO: PyInstaller: 3.6
    47 INFO: Python: 3.8.2
    47 INFO: Platform: Windows-10-10.0.18362-SP0
    49 INFO: wrote C:\Users\张小胖\Desktop\demo.spec
    50 INFO: UPX is not available.
    51 INFO: Extending PYTHONPATH with paths
    ['C:\\Users\\张小胖\\Desktop', 'C:\\Users\\张小胖\\Desktop']
    51 INFO: checking Analysis
    52 INFO: Building Analysis because Analysis-00.toc is non existent
    52 INFO: Initializing module dependency graph...
    54 INFO: Caching module graph hooks...
    78 INFO: Analyzing base_library.zip ...
    2072 INFO: Processing pre-find module path hook   distutils
    2073 INFO: distutils: retargeting to non-venv dir 'c:\\users\\张小胖\\appdata\\local\\programs\\python\\python38\\lib'
    4270 INFO: Caching module dependency graph...
    4365 INFO: running Analysis Analysis-00.toc
    4367 INFO: Adding Microsoft.Windows.Common-Controls to dependent assemblies of final executable
      required by c:\users\张小胖\appdata\local\programs\python\python38\python.exe
    4630 INFO: Analyzing C:\Users\张小胖\Desktop\demo.py
    4757 INFO: Processing pre-safe import module hook   urllib3.packages.six.moves
    c:\users\张小胖\appdata\local\programs\python\python38\lib\site-packages\selenium\webdriver\firefox\firefox_profile.py:208: SyntaxWarning: "is" with a literal. Did you mean "=="?
      if setting is None or setting is '':
    6324 INFO: Processing module hooks...
    6324 INFO: Loading module hook "hook-certifi.py"...
    6327 INFO: Loading module hook "hook-distutils.py"...
    6330 INFO: Loading module hook "hook-encodings.py"...
    6390 INFO: Loading module hook "hook-lib2to3.py"...
    6396 INFO: Loading module hook "hook-pydoc.py"...
    6397 INFO: Loading module hook "hook-selenium.py"...
    6408 INFO: Loading module hook "hook-sysconfig.py"...
    6409 INFO: Loading module hook "hook-xml.dom.domreg.py"...
    6410 INFO: Loading module hook "hook-xml.etree.cElementTree.py"...
    6416 INFO: Loading module hook "hook-xml.py"...
    6418 INFO: Loading module hook "hook-_tkinter.py"...
    6555 INFO: checking Tree
    6555 INFO: Building Tree because Tree-00.toc is non existent
    6556 INFO: Building Tree Tree-00.toc
    6668 INFO: checking Tree
    6668 INFO: Building Tree because Tree-01.toc is non existent
    6669 INFO: Building Tree Tree-01.toc
    6723 INFO: Looking for ctypes DLLs
    6755 INFO: Analyzing run-time hooks ...
    6759 INFO: Including run-time hook 'pyi_rth__tkinter.py'
    6762 INFO: Including run-time hook 'pyi_rth_multiprocessing.py'
    6765 INFO: Including run-time hook 'pyi_rth_certifi.py'
    6775 INFO: Looking for dynamic libraries
    6862 WARNING: lib not found: pywintypes38.dll dependency of c:\users\张小胖\appdata\local\programs\python\python38\lib\site-packages\win32\win32evtlog.pyd
    6870 WARNING: lib not found: pywintypes38.dll dependency of c:\users\张小胖\appdata\local\programs\python\python38\lib\site-packages\win32\win32api.pyd
    6925 WARNING: lib not found: pywintypes38.dll dependency of c:\users\张小胖\appdata\local\programs\python\python38\lib\site-packages\win32\win32wnet.pyd
    7017 INFO: Looking for eggs
    7018 INFO: Using Python library c:\users\张小胖\appdata\local\programs\python\python38\python38.dll
    7019 INFO: Found binding redirects:
    []
    7025 INFO: Warnings written to C:\Users\张小胖\Desktop\build\demo\warn-demo.txt
    7089 INFO: Graph cross-reference written to C:\Users\张小胖\Desktop\build\demo\xref-demo.html
    7130 INFO: checking PYZ
    7130 INFO: Building PYZ because PYZ-00.toc is non existent
    7134 INFO: Building PYZ (ZlibArchive) C:\Users\张小胖\Desktop\build\demo\PYZ-00.pyz
    7971 INFO: Building PYZ (ZlibArchive) C:\Users\张小胖\Desktop\build\demo\PYZ-00.pyz completed successfully.
    7989 INFO: checking PKG
    7989 INFO: Building PKG because PKG-00.toc is non existent
    7989 INFO: Building PKG (CArchive) PKG-00.pkg
    10434 INFO: Building PKG (CArchive) PKG-00.pkg completed successfully.
    10460 INFO: Bootloader c:\users\张小胖\appdata\local\programs\python\python38\lib\site-packages\PyInstaller\bootloader\Windows-64bit\runw.exe
    10460 INFO: checking EXE
    10460 INFO: Building EXE because EXE-00.toc is non existent
    10461 INFO: Building EXE from EXE-00.toc
    10463 INFO: Appending archive to EXE C:\Users\张小胖\Desktop\dist\demo.exe
    10474 INFO: Building EXE from EXE-00.toc completed successfully. 
    

    写在最后:
    Name:风骨散人,目前是一名双非在校大学生,预计考研,热爱编程,热爱技术,喜欢分享,知识无界,希望我的分享可以帮到你!名字的含义:我想有一天我能有能力随心所欲不逾矩,不总是向生活低头,有能力让家人拥有富足的生活而不是为了生计而到处奔波。“世人慌慌张张,不过是图碎银几两。偏偏这碎银几两,能解世间惆怅,可让父母安康,可护幼子成长 …”
    文章主要内容:
    Python,C++,C语言,JAVA,C#等语言的教程
    ACM题解、模板、算法等,主要是数据结构,数学和图论
    设计模式,数据库,计算机网络,操作系统,计算机组成原理
    Python爬虫、深度学习、机器学习
    计算机系408考研的所有专业课内容
    目前还在更新中,先关注不迷路。微信公众号,cnblogs(博客园),CSDN同名“风骨散人”

    如果有什么想看的,可以私信我,如果在能力范围内,我会发布相应的博文!
    感谢大家的阅读!😘你的点赞、收藏、关注是对我最大的鼓励!

    展开全文
  • python文件打包为windows linux可执行的二进制文件 日期:2018年08月15日 环境准备 确保.py文件在当前python环境下可正常运行 python环境建议:python3.5(官方版)pyinstaller 3.3.1 anaconda3.6...

    将python文件打包为windows/linux下可执行的二进制文件

    日期:2018年08月15日

    环境准备

    • 确保.py文件在当前python环境下可正常运行
    • python环境建议:python3.5(官方版)pyinstaller 3.3.1
    • anaconda3.6环境可能出问题(本人遇到过,github有人遇到类似问题,有人回复表示疑似是anaconda所致)
    • pyinstaller当前版本在python3.5下表现最好。

    打包成可执行文件

    尝试以下将py文件打包成(假设你的文件是script.py,以windows平台为例,–onefile 是一种options)

    pyinstaller options script.py
    

    生成的可执行文件位于dist目录下,尝试运行script.exe,若可正常运行,万事大吉,结束。

    可能出现的问题

    与scipy相关

    许多错误都是由 scipy 引发

    若提示缺少scipy._lib.messagestream解决方法如下:

    (1)首先生成中间文件.spec(上一步已经生成过了,可以不生成)

    pyi-makespec options script.py
    

    (2)打开.spec文件

    找到hiddenimports,将其后的空列表[]改成 ['scipy._lib.messagestream'] ,保存。

    (3)从 .spec 编译文件

    pyinstaller option script.spec
    

    莫名其妙的缺少dll

    打包成一个exe ( option: - - onefile)可执行文件固然方便,有时候也会引发莫名其妙的dll缺失的问题,若此问题出现了,把 - -onefile这个选项删掉就好,此时,可执行文件为dist/script/script.exe 。

    参考文档
    pyinstaller简洁教程
    官方文档

    展开全文
  • python project 编译Linux可执行版本 --2017.11.18 1.使用工具 pyinstaller2.安装方法 (1)可以直接去官网下载:http://www.pyinstaller.org/downloads.html (2)或者pip方式下载:pip install pyinstaller3

    python project 编译Linux的可执行版本

                                            --2017.11.18
    

    1.使用工具
    pyinstaller

    2.安装方法
    (1)可以直接去官网下载:http://www.pyinstaller.org/downloads.html
    (2)或者pip方式下载:pip install pyinstaller

    3.编译方法
    (1)编译main.py
    pyinstaller main.py (main.py是需要编译的主程序文件,后文中main同此)
    注:编译成功后会产生两个文件夹:build和dist,可执行的版本就在dist中。
    (2)运行程序
    在/dist/main/下运行输入 ./main 就可以运行

    4.遇到的问题及解决方案
    (1) 与‘ImportError: No module named _cwt’相关的问题
    ‘No module named xxx’问题一般是某个包没有被打包编译,解决办法是修改main.spec文件中的hiddenimports(main.spec文件是pyinstaller main.py编译后生成的),添加上该文件的具体路径。‘_cwt’这个问题出现的比较多,应该是与python有关,不是与项目中使用的包相关。google一下就能够找到解决办法,具体解决方案如下:
    修改前:
    hiddenimports=[],
    修改后:
    hiddenimports=[‘pywt._extensions._cwt’]
    完成之后,再重新编译,运行下面的命令
    pyinstaller main.spec
    后面遇到了类似的问题:‘ImportError: No module named _THCUNN’,这个问题是与该项目具体使用的包有关,因此网上没有找到相关的答案。主要解决办法是找到名为‘_THCUNN’的文件,通过搜索发现确实存在_THCUNN.so的文件,确定该文件路径为torch/_thnn/_THCUNN.so。因此在hiddenimports中添加的东西为:torch._thnn._THCUNN。之后别忘了重新编译:pyinstaller main.spec。
    因此,遇到‘No module named xxx’问题时,修改hiddenimports是一个可以参考的解决思路。当然,并不确定是否所有类似的问题都能这样解决,这里只是提供一个解决思路。

    (2) 与RuntimeError: Unable to find torch_shm_manager at /home/imaging/release_main/dist/-
    main/torch/lib/torch_shm_manager相关问题
    这个问题比较清楚,就是没有找到某个文件。解决这个问题的方法也很直接,就是将需要的文件配置到指定的路径。将torch包复制到/dist/main/路径下,再次运行就可以了。
    注:或许可以通过设置相关参数的方式将需要的torch包导入,但是这方面的信息比较少,没有查找到。
    附:如果需要debug,方便解决问题,可以将main.spec中的debug属性。
    debug=False 改为 debug=True
    后续遇到了类似的问题:
    tensorflow/contrib/util/tensorflow/contrib/framework/python/ops/_checkpoint_ops.so: cannot open shared object file: No such file or directory
    用同样的方法即可解决。

    (3)特殊问题:
    Exception: Versioning for this project requires either an sdist tarball, or access to an upstream git repository. It’s also possible that there is a mismatch between the package name in setup.cfg and the argument given to pbr.version.VersionInfo. Project name mock was given, but was not able to be found.
    [2103] Failed to execute script segm_main
    该问题好像不具有一般性,没有发现一些规律,只是找到了解决方案,如下:
    文件的首行插入
    import os
    #export pbr version for tensorflow user
    os.environ["PBR_VERSION"]='3.0.1' #要去查询自己的版本

    参考资料:
    https://github.com/pyinstaller/pyinstaller/issues/2883

    (4)补充说明
    1)上述所有的解决过程都是针对linux下的python projects,对于windows 下的python projects是否相同,并不确定,但可以参考解决思路。
    2)pyinstaller编译后,有些库可能由于不同机器下版本不同,需要重新导入。
    3)实际上,pyinstaller的使用并不多,因此网上的资源比较少,遇到问题google上不容易找到解决方案,可以去pyinstaller的github,会有一些问题的解决方案,也可以发帖询问,在这里寻找答案更加具有针对性,具体网址:https://github.com/pyinstaller/pyinstaller/issues

    展开全文
  • linux程序打包 使用的是pyinstaller 打开终端 sudo pip pyinstaller 报错 是pip出现的bug sudo vi /usr/bin/pip 最后三行改成下所示 from pip import main if name == ‘main’: sys.exit(main._main()) 输入:wq ...
  • 咨询下,windows下开发的python程序,能不能直接在windows下打包成linux可执行文件,在linux下装依赖包装不明白了,求老司机给普及下!
  • linux环境打包python工程为可执行程序

    千次阅读 2019-03-14 15:36:21
    本次又个需求,在ubuntu上面开发的python代码程序需要打包一...不是打包在window上的可执行程序,如果需要打包windows上的可执行程序请参照此博客,链接:windows下打包python源码成可执行文件 本次在ubun...
  • 在Windows下把python转化成可执行程序还是比较简单,用py2exe就可以了。Linux下比较方便的有这么几种:1. py2installer
  • Python是解释性语言,我们如何将普通的Python项目(含有依赖,redis)打包成可运行的一个文件(实际为文件夹吧)。下面描述一个基本流程,供大家参考。以下流程是我们实际线上REDIS数据修改的一个需求,可以简单的...
  • Python 将代码文件编译成二进制执行文件 安装PyInstaller pip install PyInstaller 编译 # Linux 系统 pyinstall -F 你的代码.py # Windows 系统 pyinstaller.exe -F 你的代码.py 编译后,在dist目录下会生成...
  • 移植Python到arm linux系统

    千次阅读 2017-09-21 08:38:07
    编译环境:ubuntu-12.0.4 编译器:gcc arm-arago-linux-gnueabi Python版本:3.6.2 Python安装包文件名:Python-3.6.2.tgz ...3. 复制移植文件到arm文件系统 具体步骤: 1.将安装包复制到新建
  • 这里我不想采用诸如ubuntu下的apt-get install方式进行python的安装,而是在linux下采用源码包的方式进行python的安装。   一、下载python源码包 打开ubuntu下的shell终端,通过wget命令下载python源码包,如下...
  • linux环境将python程序做成可执行

    千次阅读 2014-11-08 15:54:10
    linux环境将python程序做成可执行 作者: xuxiyao8888 时间: 2009-12-23 21:55:00 出处:http://blog.chinaunix.net/u3/114149/showart_2360747.html 一、下载并编译pyinstaller(只需做一次,以后可直接做第二步...
  • python 文件后缀名 .py .pyc .pyw .pyo .pyd

    万次阅读 2018-05-07 12:51:19
    pypypy 以 py 扩展名的文件Python 源码文件,由 python.exe 解释,在控制台下运行。可用文本编辑器读写。 pycpycpyc ...Python执行时,首先会将 py 文件中的源代码编译成 PyCodeObject...
  • python 下载Python 源码包下载下载python源码压缩包安装详解 步骤 tar xf Python-3.5.2.tgz cd Python-3.5.2 ./configure --prefix=/usr/local --enable-shared make make install 命令详解 Linux下源码的安装一般由...
  • Linux下安装python-opencv

    万次阅读 2015-11-27 10:22:17
    Python 【原创】Liu_LongPo 转载请注明出处【CSDN】http://blog.csdn.net/llp1992 系统:Ubuntu 14.04 python : 2.7.10 opencv : 2.4.9 OpenCv1、下载 opencv 源码 下载2、解压到任意目录 unzip opencv-...
  • 有人在讨论 Python 代码是编译执行还是解释执行?这个问题还可以换一种说法: Python编译型语言还是解释型语言?回答这个问题前,我们先弄清楚什么是编译型语言,什么是解释型语言。 所谓编译执行就是源代码...
  • [TODO] 用python程序调用C/C++编译可执行文件 ************************华丽的分割线************************ step1:cppexec.cpp #include <iostream> int add_func(int a,int b) {  return a+b...
  • python将py编译成so方法

    万次阅读 2017-09-11 09:57:14
     python的解释特性是将py编译为独有的二进制编码pyc文件,然后对pyc中的指令进行解释执行,但是pyc的反编译却非常简单,直接反编译为源码,当需要将产品发布到外部环境的时候,源码的保护尤为重要. 准备工作  ...
  • Linux-ubuntu16.04 Python3.5配置OpenCV3.2

    千次阅读 2017-03-23 19:12:27
    首先创建一个空的文件夹,进入文件夹执行如下命令,如我创建的文件夹是opencv-pythoncd opencv-python git clone https://github.com/opencv/opencv.git也可以直接进入网址OpenCV_Download下载 使用git下载后应有一...
1 2 3 4 5 ... 20
收藏数 65,177
精华内容 26,070
关键字:

python编译成linux可执行文件