首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python webapp打包sdist

python webapp打包sdist
EN

Stack Overflow用户
提问于 2021-10-23 20:04:14
回答 1查看 122关注 0票数 0

当我在项目目录中运行python setup.py sdist并使用tar --list -f .\dist\my_project_name-1.0.tar.gz检查内容时,我希望看到一个重要的python文件(manage.py)和几个目录,比如包含.html文件的templates和包含.css文件的static。但是,这些文件都在tar存档中丢失。

我看过许多问题:Q1 Q2 Q3 Q4

但是,向我的MANIFEST.in中添加一个setup.py或添加以下行并没有改变任何事情。那我的manage.py呢?默认情况下,sdist不应该包含python文件

代码语言:javascript
复制
include_package_data=True,
data_files=[('templates','my_app/templates/my_app/*.html']),
            ('static', ['my_app/static/my_app/static/css/*.css'])]

另外,我在python setup.py sdist bdist_wheel中得到了相同的结果(虽然我不确定这两个命令有什么不同)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-23 23:48:33

,我的manage.py呢?默认情况下,sdist不应该包含python文件吗?

不,默认情况下不会包括所有python文件。setup.py的另一个重要部分是packagespy_modules关键字。必须指定所有包和要包含的子包和模块。

一般来说,Django应用程序不是随manage.py文件一起分发的,但是如果您想包含它,可以将py_modules=['manage']添加到设置关键字中(假设manage.pysetup.py一起)。

要使构建的发行版包含数据文件(如模板和静态文件),您的MANIFEST.in需要包含它们。您应该添加这样的条目:

代码语言:javascript
复制
recursive-include my_app/templates *
recursive-include my_app/static *

不需要data_files关键字。只需使用include_package_data=True,它就会尊重您的MANIFEST.in

,我在python setup.py sdist bdist_wheel中得到了相同的结果。

sdist (源分布)和bdist_wheel (轮式二进制分发)只是单独的分发格式。

因此,与第一个命令相比,您只是告诉它构建源分发和一个轮子。添加bdist_wheel不会修改源发行版的构建方式。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69691638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档