python - 包含外部文件时,安装工具是否会在 MANIFEST.in 以外的任何地方显示?
问题描述
当我使用我的 Python 包生成源代码分发时
python setup.py sdist --formats=zip
我正在使用一个MANIFEST.in
文件来指定要包含的其他文件。
到目前为止,我将 Sphinx 文档的输出作为包的一部分包含在内。这可能不是标准做法,但这些是我团队内部分发的包。该文档没有被托管,因此将它与包捆绑在一起似乎很容易。
无论如何,我会构建我的 Sphinx 文档,然后添加
recursive-include docs/_build/html *
到MANIFEST.in
文件。我也有include_package_data=True
在setup.py
文件中。这给了我一个适合我要求的初始解决方案。
我现在有一个服务器来托管文档。所以我不再需要将它捆绑在包中。我从我的MANIFEST.in
-但仍然包含文件中删除了上面的行,我不知道为什么......
是否有其他位置可以覆盖MANIFEST.in
我不知道的位置?我什至尝试删除并重新添加清单文件但没有效果......
setup.py(我已将名称、电子邮件和 URL 更改为“虚拟”值以在此处发布)
from setuptools import setup
import json
import os
REQUIRED = ["lxml", "jinja2"]
def ver():
with open("meta.json") as meta:
return json.load(meta)["version"]
def readme():
with open("README.txt") as rm:
return rm.read()
setup(name="zfim",
version=ver(),
description="Python API for PTC Integrity IM server",
long_description=readme(),
url="//path/to/repo",
author="...",
author_email="...",
license="MIT",
packages=["zfim"],
install_requires=REQUIRED,
entry_points={
"console_scripts": []
},
dependency_links=["//path/to/local/package_repo"],
zip_safe=True,
include_package_data=True,
classifiers=[
"Programming Language :: Python :: 3",
"Operation System :: Windows"])
清单文件
include README.txt
include LICENSE.txt
include requirements.txt
include meta.json
解决方案
如果我删除package-name.egg-info
目录,在重新运行之前,python setup.py sdist
我对MANIFEST.in
文件所做的任何更改都会受到尊重。
这似乎有点像黑客,但它似乎对我有用。
推荐阅读
- vue.js - 是否有任何解决方案可以欺骗 vue 的生命周期钩子执行顺序?
- c# - 如何使外键自动填充连接到 ac# app 的关系数据
- amazon-web-services - EMR Hive ODBC 连接错误:HiveSQLException:预期状态:[已完成],但发现 RUNNING
- oracle - Popup LOV 或 Retutn P_Iten(如果 P_tem 在 Popup LOV 列表中)
- php - Nginx 全新的 codeigniter 安装在尝试访问控制器时显示 404 Not Found
- karate - 如何使用 TestNG 运行空手道测试运行程序文件?
- angular - 如何使用带电容器的 angular ionic 4 像 TIKTOK APP 一样全屏显示图像和视频
- c# - 表单最大化后如何修复控件位置
- linux - 如何从在 Linux 上运行的 .NET Core 应用程序对 Windows 域用户进行身份验证
- python - 如何成功编译 python 3.x