这是我写的一个小包装的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时,其内容的template /目录被复制到tarball中(我在“ tar tvzf ...”中看到它),但是当我使用pip安装该tarball时,这些模板目录未安装。
我已尝试遵循setuptools说明中的this section。我究竟做错了什么?我对pip的理解是,它解压缩了tarball,然后运行在那里找到的setup.py脚本。当我“手动”执行此操作时,一切都已安装,因此压缩包就可以了。
答案 0 :(得分:0)
为了正确打包数据文件,package_data
必须是 package 的一部分。看来包装数据没有包含在您的任何包装中,这是行不通的。就您而言,请确保您的templates
目录位于您的tracks
顶级软件包中。
答案 1 :(得分:0)
重新阅读文档后,我发现在setup()的参数中,必须设置package_data = [...]和install_package_data = True。