场合
我创建了我的setup.py文件。大多数都是开箱即用的,但我通过运送一些额外的文件有一些麻烦。但是我注意到运行
时我的tar.gz中没有包含以下文件python setup.py sdist
doc文件的位置可以是特定于os的。 但我想在 /etc/init.d/ 中看到服务脚本,并在 / etc / package 中看到示例配置(存储在我的doc文件中)。 虚拟文件可以存储在我的包文件夹中。
问题
如何在tar.gz中发送这些文件?
来源
setup.py
from setuptools import setup
setup(
name="package",
version="0.1",
description="package Daemon",
author="me",
author_email="my-email",
url="http://my-url",
package_dir={"package": "src",
"package-utils": "src/utils"},
packages=[
"package",
"package.modules",
"package.modules.core",
"package.modules.config",
"package.modules.commands",
"package.modules.dblog",
"package.utils",
"twisted.plugins",
],
package_data={
"package": [
"src/virtual/cmd/bin/*",
"src/virtual/cmd/sbin/*",
"src/virtual/usr/bin/*",
"src/virtual/files/etc/*",
"src/virtual/proc/*",
"src/virtual/*.db"]},
data_files=[
("/usr/local/doc/package", ["doc/COPYRIGHT",
"doc/LICENCE",
"doc/README",
"doc/sql/mysql.sql",
"doc/package.cfg.sample"]),
("/etc/init.d/", ["src/package"]),
("/etc/package", ["doc/package.cfg.sample"])
],
entry_points={
'console_scripts': [
['package-setup = package.utils.setup:main'],
],
},
)
try:
from twisted.plugin import IPlugin, getPlugins
except ImportError:
pass
else:
list(getPlugins(IPlugin))
tree -d
.
├── doc
│ └── sql
├── src
│ ├── virtual
│ │ ├── cmd
│ │ │ ├── bin
│ │ │ ├── sbin
│ │ │ └── usr
│ │ │ └── bin
│ │ └── files
│ │ ├── etc
│ │ └── proc
│ ├── modules
│ │ ├── commands
│ │ ├── config
│ │ ├── core
│ │ └── dblog
│ └── utils
└── twisted
└── plugins
答案 0 :(得分:3)
您必须使用MANIFEST.in
文件列出要包含在源代码分发中的数据文件。 package_data
仅针对二元分布进行咨询(这是一个很大的缺点)。
请参阅distutils文档中的The MANIFEST.in
template。