可发布的 Django 应用程序需要什么文件夹结构?

What folder structure is required for a publishable Django app?

我有一个作为我现有 Django 站点的一部分开发的 Django 应用程序,我想将其分离出来并在 PyPI 上发布。需要什么样的文件夹结构才能使应用程序适合发布到 PyPI 并可通过 pip 导入?

当前文件夹结构(截断):

mysite/
- conf/
- mysite/
  - __init__.py
  - settings.py
- myapp/
  - __init__.py
  - admin.py
  - models.py
- manage.py

按照主页上的 Django 教程,您可能会拥有这种结构,请记住需要一些路径,因为覆盖了静态、迁移、模板等 Django 框架...但是关于您的应用程序,您可以进行一些更改,但您会必须手动处理

mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        wsgi.py
    polls/
        __init__.py
        admin.py
        migrations/
            __init__.py
            0001_initial.py
        models.py
        static/
            polls/
                images/
                    background.gif
                style.css
        templates/
            polls/
                detail.html
                index.html
                results.html
        tests.py
        urls.py
        views.py
    templates/
        admin/
            base_site.html

https://docs.djangoproject.com/en/2.0/intro/reusable-apps/

根据 高级教程的 Packaging your app 部分:如何编写可重用的应用程序 您需要为您的应用程序创建一个新的父文件夹(在 Django 项目之外)并且将您的应用程序文件夹移动到那里:

mysite/
- conf/
- mysite/
  - __init__.py
  - settings.py
- <-- removed here
- manage.py

django-myapp/
- myapp/ <-- inserted here
  - __init__.py
  - admin.py
  - models.py
- setup.py

文件夹结构现在可以发布了。 (还需要添加setup.py以及PyPI打包和pip安装所需的其他文件。)