精华内容
下载资源
问答
  • python打包运行Linux

    千次阅读 2019-10-09 16:21:01
    工具在window下可以打为exe,在Linux下可以打为执行程序 # 安装PyInstaller: pip install pyinstaller # 进入程序目录,用以下命令执行你的python文件 # 会生成dist目录 pyinstaller yourprogram.py # 进入dist下...

    1、借助工具PyInstaller

    工具在window下可以打为exe,在Linux下可以打为执行程序

    # 安装PyInstaller:
    pip install pyinstaller
    # 进入程序目录,用以下命令执行你的python文件
    # 会生成dist目录
    pyinstaller yourprogram.py
    # 进入dist下yourprogram目录,运行
    ./yourprogram
    
    展开全文
  • 使用Conda Pack打包Python独立运行环境 版本说明: python=2.7 Conda 的Pack工具,可以说是让我发现了新大陆。之前有个项目使用它解决了一个棘手的问题,一直没有整理相关笔记,时间长了容易淡忘,恰好有同事问...

    使用Conda Pack打包Python独立运行时环境

    版本说明:

    python=2.7

    Conda 的Pack工具,可以说是让我发现了新大陆。之前有个项目使用它解决了一个棘手的问题,一直没有整理相关笔记,时间长了容易淡忘,恰好有同事问我如何实现的,这里就重新整理一下。

    1 棘手问题描述

    简单描述一下项目中遇到的这个棘手问题:

    这个项目是一个Python2.7开发的Flask服务,它里面有不少依赖需要使用pip安装,并且在网络不好的情况下容易下载失败。要求是能够让用户能够快速部署,几乎不做复杂的操作,就能够运行我们的项目,甚至是目标主机没有联网的情况下,都能够直接运行。另外是,不考虑目标主机的Linux操作系统,不管是Ubuntu还是CentOS只要是Linux,就能够保证正常运行。另外,目前大多数系统都安装了Python3的环境,我们使用的Python2环境不能够影响到已有的环境。

    当时想到了一些解决方法:

    1. 编写部署脚本,自动安装依赖。这个方法虽然能能够进行快速部署,但是安装依赖,需要考虑网络,不符合需求。
    2. 使用Pyinstaller等一些工具,可以打包成可执行文件。当时觉得这个方法可行,符合需求,但是由于我们这个Flask服务,里面依赖比较多,而且比较庞大。导致使用PyInstaller打包的时候,出现各种问题,经过几天的尝试,最终我还是放弃了,因为总是出现一些莫名其妙的问题,网上一些教程都是Hello World级别的,无法参考。也可能是个人能力问题,不过我还是放弃了。

    2 使用Conda Pack解决问题

    下面来讲一下,如何使用Conda Pack解决问题。思路相对来说比较简单,而且是容错率较高,不会出现莫名其妙的问题。思路是这样的:

    1. 首先使用Conda创建一个Python虚拟环境
    2. 激活创建的虚拟环境
    3. 在虚拟环境中安装项目运行时的依赖
    4. 使用Pack打包运行环境
    5. 将运行环境与项目源码一块发布

    Pack打包的运行环境与项目源码一块拷贝的目标主机,解压后,激活运行环境,就可以直接运行项目了。

    3 Conda Pack使用

    从0到1讲一下如何使用Conda Pack打包一个Flask项目运行环境。

    3.1 准备环境

    准备一台centos机器,配置随意,可以访问互联网。

    3.1.1 安装miniconda

    Miniconda是conda的免费最小安装程序。它是Anaconda的小型引导程序版本,仅包含conda,Python,它们依赖的软件包以及少量其他有用的软件包,包括pip,zlib和其他一些软件包。官网地址:https://docs.conda.io/en/latest/miniconda.html

    找到对应版本,进行下载。这里选择的是Linux的Python2.7的版本。

    image-20200810142732459

     curl -k -o Miniconda2-latest-Linux-x86_64.sh https://repo.anaconda.com/miniconda/Miniconda2-latest-Linux-x86_64.sh
    

    执行下载的脚本进行安装

    sh Miniconda2-latest-Linux-x86_64.sh
    

    根据提示按回车和输入yes即可。

    安装完成后重启或者source ~/.bashrc,重新加载环境变量。查看conda版本

    (base) [root@172 ~]# conda -V
    conda 4.8.3
    

    3.1.2 使用conda创建Python环境

    使用conda命令创建一个名字为2.7版本号为2.7的python环境。

    conda create -n 2.7 python=2.7
    

    激活环境

    conda activate 2.7
    

    这时查看python版本号:

    (2.7) [root@localhost ~]# python -V
    Python 2.7.18 :: Anaconda, Inc
    

    3.2 创建一个简单的Flask项目

    这里就不从头开始创建项目了,我把已经创建好的项目,发布到Git上了,直接克隆下来即可。git地址:https://github.com/shirukai/flask-with-runtime-env.git

    git clone https://github.com/shirukai/flask-with-runtime-env.git
    

    进入项目

    cd flask-with-runtime-env
    

    安装项目依赖

    pip install --no-cache-dir -r requirements.txt -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
    

    测试启动项目

    python application/main.py
    

    image-20200810194041376

    3.3 打包运行环境

    这里就要用到主角了:Conda Pack。官网地址:https://conda.github.io/conda-pack/。

    官网文档安装Conda Pack的方法有三种,conda安装、pip包安装、pip源码安装。这里使用conda命令安装:

    conda install -c conda-forge conda-pack
    

    使用起来,也相对简单

    # 该命令会将指定的名为my_env_name运行环境打包成my_env_name.tar.gz
    conda pack -n my_env_name
    

    我们也可以通过-o参数指定打包之后的名称

    conda pack -n my_env_name -o out_name.tar.gz
    

    将我们上面的2.7的环境打包

    conda pack -n 2.7 -o 2.7.tar.gz
    

    会在当前目录生成2.7.tar.gz。

    创建一个名为2.7的目录

    mkdir 2.7
    

    将2.7.tar.gz解压到2.7目录下

    tar -zxvf 2.7.tar.gz -C 2.7
    

    执行如下命令激活环境

    source 2.7/bin/activate
    

    查看版本号

    (2.7) [root@localhost flask-with-runtime-env]# python -V
    Python 2.7.18 :: Anaconda, Inc.
    

    将解压后的2.7文件夹重新打包成2.7.tar.bz2,用于我们flask程序的运行环境

    tar -zcvf 2.7.tar.bz2 2.7/
    

    移动到我们项目的env目录下

    mv 2.7.tar.bz2 resources/env/
    

    3.4 打包项目并测试

    将运行环境放到env下之后,我们可以直接执行build.sh进行打包。

    sh build.sh
    

    image-20200810202319962

    执行完成后,查看target目录:

    [root@localhost flask-with-runtime-env]# ls target/
    flask-with-runtime-1.0.0.tar.gz
    

    这个压缩包就是我们最终打包的程序,它里面带有独立的运行环境。只需要将它复制到要部署的机器上,解压,然后执行install脚本即可。

    将压缩包复制到/opt/目录下

    cp target/flask-with-runtime-1.0.0.tar.gz /opt/
    

    去/opt目录下解压

    [root@localhost flask-with-runtime-env]# cd /opt/
    [root@localhost opt]# tar -zxvf flask-with-runtime-1.0.0.tar.gz 
    flask-with-runtime-1.0.0/
    flask-with-runtime-1.0.0/application/
    flask-with-runtime-1.0.0/application/main.pyc
    flask-with-runtime-1.0.0/bin/
    flask-with-runtime-1.0.0/bin/start
    flask-with-runtime-1.0.0/bin/stop
    flask-with-runtime-1.0.0/env/
    flask-with-runtime-1.0.0/env/2.7.tar.bz2
    flask-with-runtime-1.0.0/scripts/
    flask-with-runtime-1.0.0/scripts/flask.service.template
    flask-with-runtime-1.0.0/scripts/install.sh
    

    进入flask-with-runtime-1.0.0目录,执行安装脚本

    cd flask-with-runtime-1.0.0
    [root@localhost flask-with-runtime-1.0.0]# sh scripts/install.sh 
    Created symlink from /etc/systemd/system/multi-user.target.wants/flask-application.service to /usr/lib/systemd/system/flask-application.service.
    Installed successfully.
    Please run command 'systemctl status flask-application' for more information about service.
    

    查看运行状态

    systemctl status flask-application
    

    image-20200810203352606

    访问目标主机:5000

    展开全文
  • linux python 脚本打包

    千次阅读 2012-08-29 16:00:10
    1. pyinstaller 安装pyinstaller: wgethttp://... tarjvxf pyinstaller-1.5.tar.bz2 ./Configure.py ...打包程序: 先运行: ./Makespec.py–onefile yourpro

    1. pyinstaller

    安装pyinstaller:

    wgethttp://www.pyinstaller.org/static/source/1.5/pyinstaller-1.5.tar.bz2

    tarjvxf pyinstaller-1.5.tar.bz2

    ./Configure.py

     

    打包程序:

    先运行:

    ./Makespec.py–onefile yourprogram.py

    默认会在当前目录下生成一个spec文件。

    --onefile选项指定只生成单一的目标可执行文件。如果不指定这个选项,则会同时生成一堆的依赖库。

     

    ./Build.pyyourprogram.spec

    即可以生成可执行程序。

     

    更多可以参考:http://www.pyinstaller.org

     

     

    2. cx_Freeze

    cx_Freeze是一个跨平台的将python转换成可执行程序的项目。

    项目主页:http://cx-freeze.sourceforge.net/

    可以下载rpm包安装。

    安装完以后只需要运行:

    cxfreezeyourprogram.py

    就会在当前目录生成一个dist的目录,里面包含了可执行程序以及依赖模块的库文件。

    项目主页上说可以通过distutils的build_exe命令生成单一的可执行程序,不过貌似不行...所以这个相对于pyinstaller可能还是稍有不便。


    更多可以参考:http://cx-freeze.sourceforge.net/cx_Freeze.html

    展开全文
  • Python是解释性语言,我们如何将普通的Python项目(含有依赖,redis)打包成可运行的一个文件(实际为文件夹吧)。下面描述一个基本流程,供大家参考。以下流程是我们实际线上REDIS数据修改的一个需求,可以简单的...

    Python是解释性语言,我们如何将普通的Python项目(含有依赖,redis)打包成可运行的一个文件(实际为文件夹吧)。下面描述一个基本流程,供大家参考。以下流程是我们实际线上REDIS数据修改的一个需求,可以简单的理解为将数据A改为B,项目地址可见https://github.com/antianchi/data_process_20190429.git

    1. 整个项目结构描述:
      我项目的包只有util、process,main.py为入口文件。其余文件夹为打包而服务。
    2. 创建setup.py文件:
      #coding=utf-8
      from distutils.core import setup
      setup(
          name='data_process',
          version='4.0',
          author='安天池',
          author_email='861710865@qq.com',
          maintainer='安天池',
          maintainer_email='xxx@qq.com',
          url='www.eastcom.com',
          packages=["","process","util"]
      )

       

    3. 在terminal中执行命令:pip freeze > requirements.txt 。生成当前项目的依赖配置文件,此文件中的内容包含了整个项目的依赖,我们只需要保留非系统的依赖即可,例如我的项目依赖了REDIS,requirements.txt 文件内容如下:
      configparser==3.5.0
      croniter==0.3.25
      redis==3.2.1

       

    4. 使用命令>pip download -d packages/ -r requirements.txt 将系统外的依赖下载到packages目录,执行完毕目录如下:
    5. 执行打包命令python setup.py sdist,执行完毕后,生成的文件所在位置。忘记描述,所有的命令执行,直接在Pycharm的terminal中执行即可,免得打开命令提示符。
    6. 将生成的data_process-4.0.zip拷贝到文件系统,然后解压,将packages,requirements.txt 放入解压后的文件夹,此文件夹内容如下:
    7. 执行项目,由于我的电脑已经将redis的额外依赖安装了,是可以直接执行python main.py的,否则将会报错,说缺少redis,那么此时,你就需要在当前文件夹下执行命令:pip install --no-index --find-links=packages/ -r requirements.txt将依赖安装到系统。
    8. 若你的系统缺少pip命令,那么你需要去下载pip-19.1.tar.gz,下载地址https://pypi.org/project/pip/#files此处找到,此tar文件针对linux;若你是在WIn上,可以执行python get-pip.py,安装pip,此文件的下载也在刚才的地址,演示就不提供了。


       
    展开全文
  • 问题:换到测试环境打包好的执行文件在运行的时候报encodings什么的错误(反复检查过环境变量路径问题,可以排除),经过大佬火眼金睛一眼看出,可能是python开发包版本问题,个人心里在想:居然是可能是这种问题...
  • 最近有需求要做个界面,并且打包到各种(win,android,linux,mac等)平台的可执行程序,先拿基础的windows练手。 如何写界面和跨平台打包,我下一篇博文再介绍。 应用到的技术介绍 我的环境是在anaconda3 prompt,...
  • Python打包exe文件方法汇总【4种】

    万次阅读 多人点赞 2018-10-21 22:15:11
    title: Python打包exe文件方法 copyright: true top: 0 date: 2018-08-11 21:08:21 tags: 打包 categories: Python进阶笔记 permalink: password: keywords: description: 使用py2exe,pyinstaller,cx_Freeze,...
  • Linux环境运行深度学习python文件

    千次阅读 2018-11-20 09:53:18
    Linux环境运行深度学习python文件学会使用Linux一些基本的命令行配置环境Python文件编辑器运行python文件Linux导入tensorflow报错生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个...
  • Ø 可以将Python脚本打包成可执行程序,在没有Python环境的机器上运行。 Ø 可以在以下环境中执行: Windows (32-bit and 64-bit), Linux (32-bit and 64-bit), Mac OS X (32-bit and 64-bit), ...
  • 关于在linux环境python文件进行打包 我的linux环境
  • Python项目打包发布Linux线上

    千次阅读 2020-04-18 17:04:28
    近期写一个Python系统硬件监控,准备发布到Linux上。 下面一起看看怎么把项目发布到Linux上吧。 环境要求 Python版本:3.7 Windows运行项目 Centos7运行项目 因为centos7的python环境是2.75的。 ...
  • python打包exe应用程序-PyInstaller

    万次阅读 多人点赞 2020-12-09 08:35:00
    1、PyInstaller简介PyInstaller是一个跨平台的Python应用打包工具,支持 Windows/Linux/MacOS三大主流平台,能够把 Python 脚本及其所在的...
  • Linux下使用miniconda构建python运行环境

    千次阅读 2019-02-19 18:08:36
    Linux下使用miniconda构建python运行环境anaconda安装miniconda安装        &...
  • Python开发 之 Python3打包(windows/linux)详解

    万次阅读 多人点赞 2020-01-20 19:55:00
    文章目录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、...
  • 事情是这样的我用打包命令:pyinstaller -F E:\python\clpicdownload\mypython.py打包了一个exe程序,但是运行时提示我缺 少bs4模块然后我就去查pyinstaller的使用方法,找到pyinstaller有一个-p参数: 1.设置导入...
  • Python项目打包部署Linux服务上

    千次阅读 2020-11-22 17:47:13
    一个Python项目的完成后需要发布,这就涉及到打包和部署。项目可打包成可执行的exe程序,或者打包成通过命令安装启动的安装包。其中打包成可执行文件工具用的最多的是pyinstaller,该工具支持windows和linux。而打包...
  • python打包小程序

    2019-04-03 17:42:22
    概述 ...通过打包可以在没有Python环境运行。 pipinstaller需要在命令行用pip3安装 pip3 install pyinstaller pyinstaller库会自动将pyinstaller命令安装到Python解释器目录中,与pip3的命令路...
  • Linux配置python开发环境

    万次阅读 2012-10-06 21:10:07
    虽然后来手工升级到了2.7.2,但是还有有些动态文件无法自动创建链接成功,无奈之下只好选择了centos6,这个版本的自带的python是2.6.6,应该能被大部分的工具支持,在此记录下在rhl6环境下构建一个python开发环境的...
  • Python打包工具比较

    千次阅读 2018-10-08 10:46:32
    Python打包工具比较 Solution Windows Linux OS X Python 3 License One-file mode Zipfile import Eggs pkg_resources support bbFreeze yes yes yes no MIT no yes yes yes py2exe yes no no yes MIT ...
  • 首先下载PyInstaller,我这儿下载的是PyInstaller-3.6.tar.gz版本:...然后进行解压,进入解压目录运行python...
  • Nuitka打包python成可执行文件,nuitka的使用方法可以参考[Python打包exe的王炸-Nuitka](https://zhuanlan.zhihu.com/p/133303836)。 本文仅针对linux系统下的打包问题提供解决方案。 使用以下命令可以对linux...
  • linux运行python程序

    2017-11-10 13:25:00
    linux下有多种方式运行python: 1. 命令行执行: 建立一个*.py文档,在其中书写python代码。之后,在命令行执行: $python *.py 注意事项:1. 需要指明文件的绝对路径;2. 源代码中要指明输出,比如print ...
  • windows和linux打包python程序

    千次阅读 2014-04-10 11:33:42
    1、py2exe是一种python发布工具,可以把python脚本转换成windows下的可执行程序,不需要安装python便可运行
  • 2、进入conda环境或者在python环境下 进入一个文件夹,放入需要打包的py文件 执行: pyinstaller -F py文件名 在此文件夹下会生成build和dist两个文件夹,在dist文件夹下,找到与打包py文件名相同的可执行文件,即...
  • 如何将Python程序打包linux可执行文件方法1.安装环境2.打包程序3.执行文件 方法 前段时间尝试使用Python的tkinter制作了一个简单的丑丑的的图形化界面,现在想把它打包Linux可执行文件,具体步骤如下: 1.安装...
  • 在实际生产中,经常需要离线在服务器上部署python环境。 第一步:安装python环境 选择安装miniconda3作为python环境。下载Miniconda3-latest-Linux-x86_64.sh 之后安装即可,习惯将路径保存为/opt/miniconda3 sh ...
  • 通过pyinstaller可以把python程序打包成可执行程序,问题也可以转换思路为如何把可执行文件封装成服务。 1.开机自启动 2.后台运行 3.Linux系统 备注:服务使用者可能是50+大叔,他只会做一个安装操作。
  • Python项目打包发布方法

    万次阅读 多人点赞 2018-12-29 11:56:07
    目前python打包工具有多个,目前比较好用的为pyinstaller,该工具可以支持在window和linux下使用。 在windows下,大小为几十K的源文件打包成exe文件,可能为几十兆,原因是把程序所引用的库文件也一起打包在一起。...
  • 详细介绍python工程打包linux可执行文件

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 31,301
精华内容 12,520
关键字:

linuxpython打包运行环境

python 订阅
linux 订阅