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

标签 python package pip

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

所以基本上我正在开发一个使用 Tornado 网络服务器框架的应用程序,我想打包它,以便用户可以通过 pip 安装它并访问基本脚本以开始网络服务器。

目录结构如下:

├── 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

Python 代码如您在包 foopackage 中所见。

MANIFEST.in 文件递归地包含目录configstatictemplates文档

这是我的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',
          ],
      },
)

如果我运行 python setup.py sdist,一切都会被很好地打包,docstemplatesconfig 包括文件等。但是,如果我运行 pip install ...,只会安装 foopackage,其他所有内容都会被忽略。

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

最佳答案

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

关于python - Pip install 忽略 MANIFEST.in 中的文件 - 如何正确构建项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24885424/

相关文章:

python - Django - 如何使用 South 重命名模型字段?

r - 当对象在另一个包中定义时,如何在 R 中调用新函数?

django - 安装numpy和pandas时如何处理heroku `Timed out compiling Python app`

python - 使用 pip 安装 Senticnet 时出现 Unicode 解码错误

python - 循环遍历所有行 Pandas 的替代方法

Python Chromedriver 使用浏览器打开命令提示符

python - pip 从 python 中自己的(命名空间)包安装子包

python - 无法在 Docker 镜像中安装 Python 数学库

Python:不同类型的多维数组

r - 使用另一个 R 包函数而不使用整个包作为依赖项