python - 为什么不从 sdist tarball 安装 package_data?
问题描述
这是我编写的一个小包的 setup.py:
$ cat setup.py
from setuptools import setup
setup(
name="tracks",
version="0.1",
description="WSGI-Applikationen Tracks",
packages=["tracks"],
package_data={'': ["templates/*"]},
install_requires=['flask', 'sqlalchemy', 'pandas', 'matplotlib',
'geographiclib', 'colorbrewer', 'mysql'],
zip_safe=False
)
当我从源目录运行“setup.py install”时,所有东西都安装在我的 venv 中,包括模板目录。当我执行 setup.py sdist --formats=gztar 时,templates/ 目录及其内容被复制到 tarball 中(我在“tar tvzf ...”中看到它),但是当我使用 pip 安装该 tarball 时,模板目录没有安装。
我已尝试按照setuptools 说明的这一部分进行操作。我究竟做错了什么?我对 pip 的理解是它解压缩 tarball,然后运行它在那里找到的 setup.py 脚本。当我“手动”执行此操作时,一切都已安装,因此 tarball 很好。
解决方案
为了正确打包数据文件,必须package_data
是包的一部分。看起来包数据不包含在您的任何包中,这是行不通的。在您的情况下,请确保您的templates
目录位于tracks
顶级包中。
推荐阅读
- python - “1 个物理 GPU,0 个逻辑 GPU”当我训练模型时 GPU 不工作
- latex - BibTeX 你不能弹出一个空的文字堆栈
- python - How to open another window in and take user input in Pyqt5 Python
- cuda - 什么是 libcublasLt.so(不是 libcublas.so)?
- python - 如何使用 FastAPI + uvicorn 在工作人员之间共享数据库连接?
- python - 从 Flask 蓝图调用方法
- syntax-error - 错误:set_input_delay (Quartus) 中的语法错误
- c - MinGW中不包含Common Item Dialog接口?
- reactjs - 如何向 CRA WorkBox Precache 添加其他文件?
- c++ - 在桌面上创建一个文件。(C++)