2013-08-09 9 views
1

СитуацияSetuptools - судоходные дополнительные файлы

Я createt мой файл setup.py. Большинство из них работает из коробки, но у меня возникли проблемы с отправкой некоторых дополнительных файлов. Но я заметил, что следующие файлы не включены в мой tar.gz при запуске

python setup.py sdist 
  • DOC файлов
  • виртуальных файлов
  • сервиса скрипт

местоположение .doc файлов может быть специфическим. Но я хотел бы увидеть служебный скрипт в /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 
+0

Вам нужно будет создать файл 'MANIFEST'. См. [Указание файлов для распространения] (http://docs.python.org/2/distutils/sourcedist.html#specifying-the-files-to-distribute) –

ответ

3

Вы должны будете использовать MANIFEST.in файл в список файлов данных, которые хотите включить в дистрибутив источника. package_data рассматривается только для бинарных дистрибутивов (большой недостаток).

См. The MANIFEST.in template в документации distutils.

+0

Ах, я совершенно неправильно понял использование, если MANIFEST. Теперь работает сборка tar.gz. BUt при попытке построить rpm это не удается, потому что он не может найти папку моего документа? –

Смежные вопросы