1

状況

setup.py ファイルを作成します。ほとんどの場合、すぐに使用できますが、いくつかの追加ファイルを同梱することで問題が発生しています。しかし、実行時に次のファイルが tar.gz に含まれていないことに気付きました

python setup.py sdist
  • ドキュメントファイル
  • 仮想ファイル
  • サービススクリプト

doc ファイルの場所は、OS によって異なります。しかし、 /etc/init.d/にあるサービス スクリプトと、 /etc/packageにあるサンプル構成 (ドキュメント ファイルに格納されている)を見たいと思います。仮想ファイルは、パッケージ フォルダーに保存できます。

質問

これらのファイルを 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))

ツリー -d

.
├── doc
│   └── sql
├── src
│   ├── virtual
│   │   ├── cmd
│   │   │   ├── bin
│   │   │   ├── sbin
│   │   │   └── usr
│   │   │       └── bin
│   │   └── files
│   │       ├── etc
│   │       └── proc
│   ├── modules
│   │   ├── commands
│   │   ├── config
│   │   ├── core
│   │   └── dblog
│   └── utils
└── twisted
    └── plugins
4

1 に答える 1

3

MANIFEST.inソース配布物に含めたいデータ ファイルをリストするには、ファイルを使用する必要があります。package_dataバイナリ配布についてのみ参照されます (大きな欠点)。

distutils ドキュメントMANIFEST.inテンプレートを参照してください。

于 2013-08-09T10:22:17.917 に答える