Pip安装忽略MANIFEST.in中的文件 - 如何正确构建项目?

tam*_*gal 5 python pip package

我读了很多关于这个问题的但是找不到任何解决方案,所以我会问另一个关于它的问题,因为我甚至不确定我是否使用了正确的Python包文件夹结构.

所以基本上我正在开发一个使用Tornado Web服务器框架的应用程序,我想打包它,因此用户可以通过它安装它pip并访问基本脚本来启动Web服务器.

目录结构如下:

??? MANIFEST.in
??? README.md
??? config
?   ??? default.cfg
??? docs
?   ??? Makefile
?   ??? _build
?   ??? _static
?   ??? _templates
?   ??? conf.py
?   ??? index.rst
??? foopackage
?   ??? __init__.py
?   ??? barmodule.py
?   ??? bazmodule.py
??? setup.py
??? static
?   ??? css
?   ?   ??? menu.css
?   ?   ??? main.css
?   ??? img
?   ?   ??? logo.png
?   ??? js
?   ?   ??? ui.js
?   ?   ??? navigation.js
?   ??? lib
?       ??? d3.v3.min.js
?       ??? jquery-1.11.0.min.js
??? templates
    ??? index.html
    ??? whatever.html
Run Code Online (Sandbox Code Playgroud)

您可以在包中看到Python代码foopackage.

MANIFEST.in文件包含递归的目录config,static,templates,和docs.

这是我的setup.py(只有相关部分:

from setuptools import setup

setup(name='foo',
      version='0.1.0',
      packages=['foopackage'],
      include_package_data=True,
      install_requires=[
          'tornado>=3.2.2',
      ],
      entry_points={
          'console_scripts': [
              'foo=foopackage.barmodule:main',
          ],
      },
)
Run Code Online (Sandbox Code Playgroud)

如果我跑python setup.py sdist,一切都被打包很好的docs,templatesconfig文件等也包括在内.但是,如果我运行pip install ...,只会foopackage安装gets并忽略其他所有内容.

如何将这些附加文件包含在安装过程中?我的目录结构好吗?我还读到了"伪造一个包",所以把所有东西都放在一个目录中并触摸一个__init__.py文件,但这对我来说似乎很奇怪: - \

tam*_*gal 2

static我通过将目录移动到实际的 Python 模块目录 ( )来解决这个问题foopackage。否则,顶级“非包”文件夹似乎会被忽略。