django项目的结构大体上都是类似,打包主要的功能就是把一些不需要部署的文件剔除,把需要部署的文件直接压缩打包。 这里还想集成一个配置文件模板生成配置文件的过程,或者写一个配置文件生成的工具,不用每次都复制修改,容易出错。 下面是orangleliu君的一个小实验,仅供参考和相互交流。

这是项目的文件结构。

setuptools应该是对标准库中的setup模块进行了封装,看起来更好用一些。

打包过程

前提 安装setuptools模块,一般都会安装,因为pip的原因。

在project目录下,新建一个setup.py 文件。

#coding:utf-8
#package project

from setuptools import setup, find_packages

setup(
    name="apmonitor",
    version="1.0.0",

    author="orangleliu",
    author_email="orangleliu@gmail.com",

    #自动寻找带有 __init__.py 的文件夹
    packages=find_packages(exclude=["logs"]),

    install_requires = ['django==1.6'],
    description = "ap monitor system",

    #单独的一些py脚本,不是在某些模块中
    scripts = ["dbrouters.py","index.py",
               "manage.py", "settings.py",
               "uwsgi.py", "__ini__.py"],

    #静态文件等,配合MANIFEST.in (package_data 参数不太好使)
    include_package_data = True,

    #如果是正式的项目,还会有更多的信息(例如开源证书写在下面)
    url = "http://wifi21.com",
)

这里的文件只包含了python的一些脚本,还有打包信息

添加静态资源(htm 样式 js 图片 配置等)需要另外一个配置文件MANIFEST.in

recursive-include conf *
recursive-include staticfiles *
recursive-include templates *
recursive-include */templates *

然后再使用命令打包

python setup.py sdist 

会在setup.py 同级的目录下生成一个dist文件夹,里面包含了打包好的文件,同时生成了一个xxx.egg-info 的文件。

小结

这个过程是最简单的,只有一些pyhton模块和静态资源的打包,setup还可以生成许多中格式的包,更多的定制选项,查文档可获得。后面需要一些定制的东西,有些变了生成,还有一些自动化的东西添加。

声明:

本文出自 “orangleliu笔记本” 博客,转载请务必保留此出处http://blog.csdn.net/orangleliu/article/details/46604237 作者orangleliu 采用署名-非商业性使用-相同方式共享协议

[django]项目打包构建的更多相关文章

  1. Django项目打包

    Django项目打包 这是目前开发完成的project目录树.我们要打包其中的polls app. (v_python3.6) thinkt@linux-pw37:~/PycharmProjects/ ...

  2. Nginx+Uwsgi+Django 项目部署到服务器。

    首先先说一下思路: 1.本地django项目打包 主要用到的是 python自带的distutils.core 下的 setup,具体代码在下面,主要讲的两个问题是package主要打包为和目录同级的 ...

  3. SpringBoot+Maven 多模块项目的构建、运行、打包

    SpringBoot+Maven 多模块项目的构建.运行.打包 https://blog.csdn.net/zekeTao/article/details/79413919

  4. Django入门第一步:构建一个简单的Django项目

    Django入门第一步:构建一个简单的Django项目 1.简介 Django是一个功能完备的Python Web框架,可用于构建复杂的Web应用程序.在本文中,将通过示例跳入并学习Django.您将 ...

  5. K8S实战-构建Django项目-03-使用共享存储

    上篇博文,发布之后,正好跟着双十一,不知道大家剁手了没~~.好啦,言归正传先声明一下,每周1,3,5更新教程,大家如果想要了解更多的教程可以重温一下之前的教程或者,关注崔格拉斯 公众号,大家想要源码的 ...

  6. SpringBoot+Maven 多模块项目的构建、运行、打包实战

    前言 最近在做一个很复杂的会员综合线下线上商城大型项目,单模块项目无法满足多人开发和架构,很多模块都是重复的就想到了把模块提出来,做成公共模块,基于maven的多模块项目,也好分工开发,也便于后期微服 ...

  7. 打包django项目

    1.安装pip install pyinstaller2.在django项目目录下执行pyi-makespec -D manage.py # 生成manage.spec文件3.执行pyinstalle ...

  8. [译]如何使用 Docker 组件开发 Django 项目?

    原文地址:Django Development With Docker Compose and Machine 以下为译文 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包 ...

  9. Django-下载安装-配置-创建django项目-三板斧简单使用

    目录 Django 简介 使用 django 的注意事项 计算机名不能有中文 Django版本问题 django下载安装 在命令行下载安装 在pycharm图形界面下载安装 检验是否安装成功 创建Dj ...

随机推荐

  1. SpringBoot学习之基础篇

    在前面的博文中,已经演示过springboot与Mybatis集成的实例,本篇再来探讨一下SpringBoot的基础.  一.关于SpringBoot SpringBoot可以基于Spring轻松创建 ...

  2. vue loadMore 上拉刷新不能实现的坑

    1.如果你写的代码没问题,但依然不能实现上拉刷新效果,那你有可能是缺少了overflow: scroll 2.如果上拉刷新一直在加载状态,需要调用this.$refs.loadmore.onBotto ...

  3. 第一节mysql 安装

    1 安装之前的检查 先要检查Linux系统中是否已经安装了MySQL,输入命令尝试打开MySQL服务: 输入密码后,如果出现以下提示,则说明系统中已经安装有 MySQL: 如果提示是这样的,则说明系统 ...

  4. TensorFlow-Bitcoin-Robot:一个基于 TensorFlow LSTM 模型的 Bitcoin 价格预测机器人

    简介 TensorFlow-Bitcoin-Robot:一个基于 TensorFlow LSTM 模型的 Bitcoin 价格预测机器人. 文章包括一下几个部分: 1.为什么要尝试做这个项目? 2.为 ...

  5. ASP.NET Core部署到Windows IIS

    网上已经有许多ASP.NET Core关于Widows IIS部署的文章,在部署到服务器时遇到了一些问题,在这里我就不再对原理进行阐释(复制)了,只写下一些关键环节,想看原理的同学请参考官网,此文章作 ...

  6. find 命令查找文件,文件夹

    查找文件 find / -name httpd.conf 查找文件夹 find / -name "*1526*" -type d, 其中双引号里的东西表示文件夹名字包含" ...

  7. echarts——各个配置项详细说明总结

      前  言    最近做了个关于各种图表的项目,用到了echarts , 关于各个配置项刚开始用好多都不懂,有些地方需要改不知道改哪个参数,就在网上查了各种,总结规整了一下,跟大家分享学习一下.(e ...

  8. Python3 解释器

    Linux/Unix的系统上,Python解释器通常被安装在 /usr/local/bin/python3.4 这样的有效路径(目录)里. 我们可以将路径 /usr/local/bin 添加到您的Li ...

  9. C实战:强大的程序调试工具GDB

    C实战:强大的程序调试工具GDB 1.基本调试 这里只列举最最常用的GDB命令. 1.1 启动GDB gdb program:准备调试程序.也可以直接进入gdb,再通过file命令加载. 1.2 添加 ...

  10. 在MPAndroidChart库K线图的基础上画均线

    CombinedChart 可以直接使用MPAndroidChart库里面提供的CombinedChart实现组合图形 Demo:CombinedChartDemo ------分割线(如果想在一个图 ...