iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python项目打包发布总结
  • 894
分享到

python项目打包发布总结

项目python 2023-01-31 04:01:54 894人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

概览 这里主要收集python项目的打包、发布和部署的常用方法,只是入门级别,深入的流程还是以官方文档为准(链接每节都已经给出)。 distutils,setuptools,pip,virtualenv 官网资料(Python

概览

这里主要收集python项目的打包、发布和部署的常用方法,只是入门级别,深入的流程还是以官方文档为准(链接每节都已经给出)。

  • distutils,setuptools,pip,virtualenv
  • 官网资料(Python Packaging User Guide):
    https://packaging.python.org/key_projects/#setuptools

简介

  1. distutils - Python自带的基本安装工具, 适用于非常简单的应用场景使用, 不支持依赖包的安装
      通过distutils来打包,生成安装包,安装python包等工作,需要编写名为setup.py python脚本文件。

  2. setuptools - 针对 distutils 做了大量扩展, 尤其是加入了包依赖机制。不支持python3,安装完setuptools后会有easy_install

  3. distribute - 类似于setuptools,支持python3,安装完distribute后会有easy_install。

  4. easy_install - setuptools 和 distribute 自带的安装脚本, 也就是一旦setuptools或distribute安装完毕, easy_install 也便可用了。

  5. pip - 目标是取代easy_install。easy_install 有很多不足: 安装事务是非原子操作, 只支持 svn, 没有提供卸载命令, 安装一系列包时需要写脚本; pip 解决了以上问题, 已俨然成为新的事实标准, virtualenv 与它已经成为一对好搭档;

  6. distutils2 - setuptools 和 distribute 的诞生是因为 distutils 的不济, 进而导致目前分化的状况。它将成为 Python 3.3 的标准库 packaging , 并在其它版本中以distutils2 的身份出现; 换句话说, 它和 pip 将联手结束目前混乱的状况。

  7. virtualenv - 用来创建隔离的python环境,处理python环境的多版本和模块依赖。

  8. 常识
    • sudo apt-get install 安装的package存放在 /usr/lib/python2.7/dist-packages目录中
    • pip 或者 easy_install安装的package存放在/usr/local/lib/python2.7/dist-packages目录中
    • 手动从源代码安装的package存放在site-packages目录中

一、distutils

  1. 新建文件夹(例如:distribution), 将项目文件放进去
  2. 在该文件夹下,新建setup.py文件

    • 编辑内容:

      from distutils.core import setup
      setup(
      name=’logIn’, #这个是最终打包的文件名
      version=’1.0.0’,
      py_modules=[‘logInr’], #要打包哪些,.py文件,
      )

    • 保存退出
  3. 在命令行下,进入该文件夹,运行一下命令:

    • (1). 打包:python setup.py sdist
      这样在文件夹中就多出了几个文件,在dist文件夹中的,logIn-1.0.0.tar.gz就是我们的发布包了;
    • (2). 安装包到本地副本中(路径为:/usr/local/lib/python2.7/dist-packages):
      sudo python setup.py install (–record files.txt)
      注意:为了方便卸载,可以添加括号中的选项(当前文件夹会产生files.txt), 卸载时就可以在当前文件夹下使用如下命令:
      sudo cat files.txt | sudo xargs rm -rf

二、setuptools:

  1. setuptools 只是对distutils 的增强, 其使用过程还是一样:

    编辑: 先在项目主目录下编辑setup.py,
    打包: python setup.py sdist 
    安装: sudo python setup.py install  (--record files.txt)
    卸载: sudo cat files.txt | sudo  xargs rm -rf
    
  2. setuptools工具的setup.py的模板

    • 官方文档(详细): Https://setuptools.readthedocs.io/en/latest/setuptools.html#developer-s-guide
    • 中文文档(上手): http://blog.csdn.net/pfm685757/article/details/48651389#t3
    • 模板 (只是一部分, 详见官网说明)

      import ez_setup
      ez.setup.use_setuptools()   # 这两行是当setuptools不存在时,自动从网上下载安装所需的setuptools包.
      from setuptools import setup, find_packages
      setup(
          name = "HelloWorld",
          version = "0.1",
          packages = find_packages(),     # 常用,要熟悉 :会自动查找当前目录下的所有模块(.py文件) 和包(包含__init___.py文件的文件夹)
          scripts = ['say_hello.py'],
          # Project uses reStructuredText, so ensure that the docutils get
          # installed or upgraded on the target Machine
          install_requires = ['docutils>=0.3'],       # 常用
          package_data = {
              # If any package contains *.txt or *.rst files, include them:
              '': ['*.txt', '*.rst'],
              # And include any *.msg files found in the 'hello' package, too:
              'hello': ['*.msg'],
          },
          # 
          entry_points = {
              'console_scripts': [
                  'foo = demo:test',
                  'bar = demo:test',
              ],
              'gui_scripts': [
                  'baz = demo:test',
              ]
          },
          # metadata for upload to PyPI
          author = "Me",
          author_email = "me@example.com",
          description = "This is an Example Package",
          license = "PSF",
          keyWords = "hello world example examples",
          url = "http://example.com/HelloWorld/",   # project home page, if any
          # could also include long_description, download_url, classifiers, etc.
      )
      

三、virtualenv

  1. 官方文档: https://virtualenv.pypa.io/en/stable/
  2. 主要命令:

        $ virtualenv ENV
        $ virtualenv --system-site-packages ENV   # 继承系统原来的安装包
        $ source bin/activate  # 启动虚拟环境
        $ deactivate       # 退出环境
        $ rm -r /path/to/ENV   # 删除环境
        $ virtualenv --relocatable ENV  #  创造可以浮动的虚拟环境
        $ virtualenv --extra-search-dir=/path/to/distributions ENV # 添加自定义版本的pip或setuptools        
    
  3. 移植:

        创建无继承的虚拟环境
        virtualenv  --no-site-packages  PATH/to/projDirName
    
        进入projDirName, 编辑项目
        cd  PATH/to/projDirName
    
        退出,至上级目录
        cd  ..
        virtualenv --relocatable   projDirName#  创造可以浮动的虚拟环境
    
        将整个文件夹复制到指定的机器上, 进入PATH/to/projDirName, 启动环境,运行程序
    

四 、pip

  • 官方文档: https://pip.pypa.io/en/stable/user_guide/#requirements-files
  • 这里只列出部署相关的两条命令

        pip freeze  > requirements      #  freeze 是导出当前环境安装的安装包
    
        pip install -r requirements.txt         # 这个requirements.txt 有格式要求
    

--结束END--

本文标题: python项目打包发布总结

本文链接: https://www.lsjlt.com/news/187857.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python项目打包发布总结
    概览 这里主要收集python项目的打包、发布和部署的常用方法,只是入门级别,深入的流程还是以官方文档为准(链接每节都已经给出)。 distutils,setuptools,pip,virtualenv 官网资料(Python...
    99+
    2023-01-31
    项目 python
  • 【python】项目打包发布
    概览 这里主要收集python项目的打包、发布和部署的常用方法,只是入门级别,深入的流程还是以官方文档为准(链接每节都已经给出)。 distutils,setuptools,pip,virtualenv 官网资料(Python Pack...
    99+
    2023-01-31
    项目 python
  • 【Python】Python项目打包发布(四)(基于Nuitka打包PySide6项目)
    Python项目打包发布汇总 【Python】Python项目打包发布(一)(基于Pyinstaller打包多目录项目) 【Python】Python项目打包发布(二)(基于Pyinstaller打包...
    99+
    2023-10-06
    python linux 开发语言
  • Python打包与发布的概念总结
    本文只是总结Python打包与发布的概念。如果希望了解具体如何操作,请移步至: http://blog.csdn.net/nirendao/article/details/48664551 egg文件 压缩文件,Python工程...
    99+
    2023-01-31
    概念 Python
  • vue项目如何打包发布上线
    这篇文章将为大家详细讲解有关vue项目如何打包发布上线,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、开发环境到生产环境的转变项目开发结束之后,首先我们需要通知后端,获取一个线上的路径,之后将之前的开发...
    99+
    2023-06-25
  • Unity3d发布android项目,打包apk包流程(unity2021.3.10)
    一、确保已正确安装SDK 1、如下图,在安装版本设置里,点击添加模块。如果没有添加模块,证明你安装路径不是目前版本的安装路径,先去设置回来。 2、框选Android Build Suppor...
    99+
    2023-09-03
    android unity c# Powered by 金山文档
  • python flask项目打包成docker镜像发布的过程
    1.编写python flask代码,简单写一个加法的接口,命名为sum.py import json from flask import Flask,request,render_...
    99+
    2023-03-19
    python 打包docker镜像 python flask docker镜像 python 打包 flask项目
  • 使用Docker部署打包发布springboot项目
    目录前言第一:环境第二:开始描述从搞项目到docker发布:第四:各种错误教训集合。前言 从安装docker到多种方式打包发布,编译,镜像,容器等问题,遇到种种问题,终于不负所望,一...
    99+
    2024-04-02
  • C#开发新闻发布系统的项目经验总结
    C#开发新闻发布系统的项目经验总结项目背景新闻发布系统是一种用于发布和管理新闻内容的软件系统。随着互联网的发展,新闻媒体越来越重视在线新闻的传播和发布,因此,开发一个高效、稳定的新闻发布系统对于新闻机构来说是非常重要的。本文将对C#开发新闻...
    99+
    2023-11-02
    C#开发 新闻发布 项目经验总结
  • vue项目打包清除console.log的四种方法总结
    目录第1种:第2种:第3种:第4种:总结记录一下项目中碰到的小问题,打包清除console.log的方法,vue2,vue-cli5.0.0(得注意一下自己项目的vue-cli版本)...
    99+
    2023-05-15
    vue打包去除console vue console.log vue清除console.log
  • uni-app分包项目实战总结
    目录前言今天就来说uni-app如何分包:总结前言 项目需要uni-app开发,说说uni-app是什么,uni-app它跟Trao框架一样都是用来做多端开发的 共同点是:都可以发布...
    99+
    2024-04-02
  • vue项目打包发布上线的方法步骤
    目录一、开发环境到生产环境的转变二、设置统一的请求路径 三、运行打包命令vue项目开发完成后,我们需要将项目打包上线,同时我们希望可以在本地预览生产环境项目 (以vue-c...
    99+
    2024-04-02
  • 如何使用Docker部署打包发布springboot项目
    这篇文章将为大家详细讲解有关如何使用Docker部署打包发布springboot项目,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。前言从安装docker到多种方式打包发布,编译,镜像,容器等问题,遇到种种...
    99+
    2023-06-29
  • Python项目通用的目录结构总结
    一个好的项目结构会让我们在开发中更加得心应手。 对于Web项目,我们通常采用Flask或Django等框架,会有一套适合这种项目的工程目录。 对于爬虫项目,通常有Scrapy等开源框架,也会提供一套适合这种项目的工程目录。 对...
    99+
    2023-01-31
    结构 目录 项目
  • 如何使用jenkins一键打包发布vue项目
    这篇文章主要介绍如何使用jenkins一键打包发布vue项目,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!jenkins的安装Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部...
    99+
    2023-06-15
  • python flask项目打包成docker镜像发布的方法是什么
    这篇文章主要介绍了python flask项目打包成docker镜像发布的方法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇python flask项目打包成docker镜像发布的方法...
    99+
    2023-07-05
  • 使用jenkins一键打包发布vue项目的实现
    目录jenkins的安装安装更换端口号(默认运行在8080端口)基础配置发布vue项目安装插件-nodejs配置nodejs插件创建任务jenkins的安装 Jenkins是一款开源...
    99+
    2024-04-02
  • Vue项目打包并发布的完整步骤记录
    目录1、安装部署Nginx服务器。(类似Tomcat服务器)2、Vue项目打包。总结如何将Vue项目打包并发布?我这边是测试发布到本地,不过步骤是一样的,步骤如下: 1、安装部署Ng...
    99+
    2024-04-02
  • Vue3结合TypeScript项目开发实践总结
    目录概述1、compositon Api1、ref 和 reactive的区别?2、周期函数3、store使用4、router的使用2、关注点分离3、TypeScript支持概述 ...
    99+
    2024-04-02
  • SpringBoot项目如何引入外部jar及将外部jar打包到项目发布jar包
    1、创建一个SpringBoot项目 下载项目之后将项目导入IDEA 2、如何添加外部jar包 准备一个外部的jar包, 我这里使用的是guava-31.1-jre.jar作为演示 下载地址:htt...
    99+
    2023-10-25
    spring boot jar java
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作