Django项目打包

这是目前开发完成的project目录树。我们要打包其中的polls app。

(v_python3.6) thinkt@linux-pw37:~/PycharmProjects/mysite> tree

.

├── db.sqlite3

├── mysite

│   ├── __init__.py

│   ├── __pycache__

│   │   ├── __init__.cpython-36.pyc

│   │   ├── settings.cpython-36.pyc

│   │   ├── urls.cpython-36.pyc

│   │   └── wsgi.cpython-36.pyc

│   ├── settings.py

│   ├── urls.py

│   └── wsgi.py

├── polls

│   ├── admin.py

│   ├── apps.py

│   ├── __init__.py

│   ├── migrations

│   │   ├── 0001_initial.py

│   │   ├── 0002_auto_20170401_1758.py

│   │   ├── __init__.py

│   │   └── __pycache__

│   │       ├── 0001_initial.cpython-36.pyc

│   │       ├── 0002_auto_20170401_1758.cpython-36.pyc

│   │       └── __init__.cpython-36.pyc

│   ├── models.py

│   ├── __pycache__

│   │   ├── admin.cpython-36.pyc

│   │   ├── apps.cpython-36.pyc

│   │   ├── __init__.cpython-36.pyc

│   │   ├── models.cpython-36.pyc

│   │   ├── tests.cpython-36.pyc

│   │   ├── urls.cpython-36.pyc

│   │   └── views.cpython-36.pyc

│   ├── static

│   │   └── polls

│   │       ├── images

│   │       │   └── background.jpg

│   │       └── style.css

│   ├── templates

│   │   └── polls

│   │       ├── detail.html

│   │       ├── index.html

│   │       └── results.html

│   ├── tests.py

│   ├── urls.py

│   └── views.py

└── templates

    └── admin

        ├── base_site.html

        └── index.html

复制一份添加前辍头django,让人容易识别这是一个django项目。

(v_python3.6) thinkt@linux-pw37:~/PycharmProjects/mysite> cp polls django-polls -rfv

创建说明文件,方便其它人阅读。

(v_python3.6) thinkt@linux-pw37:~/PycharmProjects/mysite> vim django-polls/README.rst

=====

Polls

=====

Polls is a simple Django app to conduct Web-based polls. For each

question, visitors can choose between a fixed number of answers.

Detailed documentation is in the "docs" directory.

Quick start

-----------

1. Add "polls" to your INSTALLED_APPS setting like this::

    INSTALLED_APPS = [

        ...

        'polls',

    ]

2. Include the polls URLconf in your project urls.py like this::

    url(r'^polls/', include('polls.urls')),

3. Run `python manage.py migrate` to create the polls models.

4. Start the development server and visit http://127.0.0.1:8000/admin/

   to create a poll (you'll need the Admin app enabled).

5. Visit http://127.0.0.1:8000/polls/ to participate in the poll.

创建setup.py脚本,提供详细的关于build,使用等方法。

(v_python3.6) thinkt@linux-pw37:~/PycharmProjects/mysite/django-polls> vim setup.py

(v_python3.6) thinkt@linux-pw37:~/PycharmProjects/mysite/django-polls> cat setup.py

import os

from setuptools import find_packages, setup

with open(os.path.join(os.path.dirname(__file__), 'README.rst')) as readme:

    README = readme.read()

# allow setup.py to be run from any path

os.chdir(os.path.normpath(os.path.join(os.path.abspath(__file__), os.pardir)))

setup(

    name='django-polls',

    version='0.1',

    packages=find_packages(),

    include_package_data=True,

    license='BSD License',  # example license

    description='A simple Django app to conduct Web-based polls.',

    long_description=README,

    url='https://www.example.com/',

    author='Your Name',

    author_email='yourname@example.com',

    classifiers=[

        'Environment :: Web Environment',

        'Framework :: Django',

        'Framework :: Django :: X.Y',  # replace "X.Y" as appropriate

        'Intended Audience :: Developers',

        'License :: OSI Approved :: BSD License',  # example license

        'Operating System :: OS Independent',

        'Programming Language :: Python',

        # Replace these appropriately if you are stuck on Python 2.

        'Programming Language :: Python :: 3',

        'Programming Language :: Python :: 3.4',

        'Programming Language :: Python :: 3.5',

        'Topic :: Internet :: WWW/HTTP',

        'Topic :: Internet :: WWW/HTTP :: Dynamic Content',

    ],

)

创建附加文件说明。

v_python3.6) thinkt@linux-pw37:~/PycharmProjects/mysite/django-polls> vim MANIFEST.in

(v_python3.6) thinkt@linux-pw37:~/PycharmProjects/mysite/django-polls> cat MANIFEST.in

include LICENSE

include README.rst

recursive-include polls/static *

recursive-include polls/templates *

recursive-include docs *

附加文件有有个docs目录,创建docs目录,如果有文档等放置在其中。

(v_python3.6) thinkt@linux-pw37:~/PycharmProjects/mysite/django-polls> mkdir docs

开始打包。

(v_python3.6) thinkt@linux-pw37:~/PycharmProjects/mysite/django-polls> python setup.py sdist

running sdist

running egg_info

creating django_polls.egg-info

writing django_polls.egg-info/PKG-INFO

writing dependency_links to django_polls.egg-info/dependency_links.txt

writing top-level names to django_polls.egg-info/top_level.txt

writing manifest file 'django_polls.egg-info/SOURCES.txt'

reading manifest file 'django_polls.egg-info/SOURCES.txt'

reading manifest template 'MANIFEST.in'

warning: no files found matching 'LICENSE'

warning: no files found matching '*' under directory 'polls/static'

warning: no files found matching '*' under directory 'polls/templates'

warning: no files found matching '*' under directory 'docs'

writing manifest file 'django_polls.egg-info/SOURCES.txt'

running check

creating django-polls-0.1

creating django-polls-0.1/django_polls.egg-info

creating django-polls-0.1/migrations

copying files to django-polls-0.1...

copying MANIFEST.in -> django-polls-0.1

copying README.rst -> django-polls-0.1

copying setup.py -> django-polls-0.1

copying django_polls.egg-info/PKG-INFO -> django-polls-0.1/django_polls.egg-info

copying django_polls.egg-info/SOURCES.txt -> django-polls-0.1/django_polls.egg-info

copying django_polls.egg-info/dependency_links.txt -> django-polls-0.1/django_polls.egg-info

copying django_polls.egg-info/top_level.txt -> django-polls-0.1/django_polls.egg-info

copying migrations/0001_initial.py -> django-polls-0.1/migrations

copying migrations/0002_auto_20170401_1758.py -> django-polls-0.1/migrations

copying migrations/__init__.py -> django-polls-0.1/migrations

Writing django-polls-0.1/setup.cfg

creating dist

Creating tar archive

removing 'django-polls-0.1' (and everything under it)

在dist目录下存放了打包好的文件。

(v_python3.6) thinkt@linux-pw37:~/PycharmProjects/mysite/django-polls/dist> ll

总用量 4

-rw-r--r-- 1 thinkt users 2349 4月  18 15:08 django-polls-0.1.tar.gz

使用pip安装本地打包。

pip install --user django-polls/dist/django-polls-0.1.tar.gz

使用pip的uninstall删除

pip uninstall django-polls

参考:https://docs.djangoproject.com/en/1.10/intro/reusable-apps/

Django项目打包的更多相关文章

  1. [django]项目打包构建

    django项目的结构大体上都是类似,打包主要的功能就是把一些不需要部署的文件剔除,把需要部署的文件直接压缩打包. 这里还想集成一个配置文件模板生成配置文件的过程,或者写一个配置文件生成的工具,不用每 ...

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

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

  3. 打包django项目

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

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

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

  5. 基于centos7+nginx+uwsgi+python3+django2.0部署Django项目

    0.序言 本文讲解如何基于centos7+nginx+uwsgi+python3+django2.0把windows上的本地项目部署到云服务器上. 本文服务器上的django项目和虚拟环境的路径将建立 ...

  6. Django APP打包重用

    引言 有时候,我们需要将自己写的app分发(dist)给同事,分享给朋友,或者在互联网上发布,这都需要打包.分发我们的app. Django的子系统重用是基于app级别的.也就是一个项目可以包含多个互 ...

  7. 直接运行vue+django项目

    直接运行vue+django项目 下载前后端代码 wget https://files.cnblogs.com/files/pyyu/luffy_boy.zip wget https://files. ...

  8. 使用Nginx+uwsgi在亚马逊云服务器上部署python+django项目完整版(二)——部署配置及相关知识

    ---恢复内容开始--- 一.前提: 1.django项目文件已放置在云服务器上,配置好运行环境,可正常运行 2.云服务器可正常连接 二.相关知识 1.python manage.py runserv ...

  9. 基于腾讯云CentOS7.4+MySQL5.7+Python3+uwsgi+nginx的Django项目部署

    准备知识 1.django一个基于python的开源web框架,请确保自己熟悉它的框架目录结构. 2.uWSGI一个基于自有的uwsgi协议.wsgi协议和http服务协议的web网关 3.nginx ...

随机推荐

  1. Nordic nRF52820超低功耗蓝牙5.2 SoC芯片-低端无线连接方案首选

    nRF52820是功耗超低的低功耗蓝牙 (Bluetooth Low Energy /Bluetooth LE).蓝牙mesh.Thread.Zigbee和2.4 GHz专有低端无线连接解决方案.nR ...

  2. 关于微信小程序的一点经验

    2018年的11月份,自己做微信小程序相关的项目已经有四个月,这四个月自己走过很多弯路,也学到了不少经验,下面就一一总结: 一,微信小程序的radio组件是可以改变按钮样式的(比如大小,颜色等等) 改 ...

  3. 多级分销概念 MongoDB||MySQL

    1.背景 购物软件中提供推荐注册返利机制,A->B,A->C,B->D,B->E.被邀请人只有一对一的上级,上级对下级是一对多,用户可以一直邀请用户. 2.实现方法 2.1.M ...

  4. web系统安全运营之基础- 基于DFA算法的高性能的敏感词,脏词的检测过滤算法类(c#).

    [概述]做好一个web系统的安全运维,除了常规的防注入,防入侵等,还有一个检测并过滤敏感词,脏词..  这件事做得不好,轻则导致一场投诉或纠纷,重则导致产品被勒令关闭停运. 废话少说,先看下代码,可以 ...

  5. MODIS系列之NDVI(MOD13Q1)二:modis数据相关信息

    1.MODIS数据的特点 (1)全球免费:NASA对MODIS数据实行全球免费接收的政策(TERRA卫星除MODIS外的其他传感器获取的数据均采取公开有偿接收和有偿使用的政策),这样的数据接收和使用政 ...

  6. vue 中 history 模式的配置和打包

    在使用 vue 进行项目开发中,默认的路由形式是 hash,表现形式就是 url 中始终带有 # 号,在后台管理类的项目中并不影响使用,但是在特殊场景,比如微信分享的H5链接中,微信会自动拼接参数,由 ...

  7. 智能指针 shared_ptr

    1.不支持数组 2.c++11支持make_shared,分配一次内存,构造函数为private和proteced时不能调用. 3.new初始化分配两次内存,一.分配数据块内存,二.分配控制块内存

  8. 搞搞hibernate.current_session_context_class

    搞搞hibernate.current_session_context_class 分类: 排错记录2010-09-01 18:14 4155人阅读 评论(3) 收藏 举报 sessionhibern ...

  9. AJ学IOS(22)UI之UIApplicationDelegate和UIWindow

    AJ分享,必须精品 UIApplicationDelegate 每次新建完项目,都有个带有“AppDelegate”字眼的类,它就是UIApplication的代理 NYAppDelegate默认已经 ...

  10. 修改vs默认浏览器

    右键你的Html或者网页项目,选择"使用以下工具浏览" 跳出选择框,选择你想要的浏览器作为默认值即可,也可以添加你想要的浏览器.