2017-02-21 16 views
1

У меня есть проект Python prj, что мы можем описать как набор папок и requirements.txt файла:Что должно быть в setup.py для создания колеса?

[prj/fold1, prj/fold2,..., prj/foldN, prj/requirements.txt] 

Я хочу, чтобы упаковать этот проект, так что она может быть легко установлена ​​на других компьютерах. Я понимаю, что мне нужно добавить файл setup.py, но есть несколько вещей, которые я не понимаю.

Что следует написать в файле setup.py, чтобы создать пакет колес? Можете ли вы привести пример файла и команд, необходимых для упаковки проекта?

EDIT:

У меня есть этот setup.py:

(virtual_env_test) [email protected]:~/mlp/trunk$ cat setup.py                                    

    from setuptools import setup                                              


    setup(name='mlearn',                                                
      version='0.1',                                                
      description='Tool to learn ip addresses on a network.',                                      
      author='Corvil',                                                
      author_email='...',                                               
      packages=['common', 'iplearning', 'applearning', 'peerspeak'],                                    
      package_dir={                                                 
       'common':'common',                                              
       'iplearning': 'iplearning',                                            
       'applearning': 'applearning',                                            
       'peerspeak':'peers_peak'},                                            
     )                                                    
    (virtual_env_test) [email protected]:~/mlp/trunk$  

и я побежал:

(virtual_env_test) [email protected]:~/mlp/trunk$ python setup.py bdist_wheel                                 
    running bdist_wheel                                                 
    running build                                                  
    running build_py                                                 
    package init file 'iplearning/__init__.py' not found (or not a regular file)                                  
    package init file 'applearning/__init__.py' not found (or not a regular file)                                  
    package init file 'peers_peak/__init__.py' not found (or not a regular file)                                  
    creating build/lib/peerspeak                                              
    copying peers_peak/peers_peak.py -> build/lib/peerspeak                                        
    copying peers_peak/peers_peak_report.py -> build/lib/peerspeak                                      
    installing to build/bdist.linux-x86_64/wheel                                          
    running install                                                  
    running install_lib                                                 
    creating build/bdist.linux-x86_64                                             
    creating build/bdist.linux-x86_64/wheel                                            
    creating build/bdist.linux-x86_64/wheel/peerspeak                                         
    copying build/lib/peerspeak/peers_peak.py -> build/bdist.linux-x86_64/wheel/peerspeak                                
    copying build/lib/peerspeak/peers_peak_report.py -> build/bdist.linux-x86_64/wheel/peerspeak                              
    creating build/bdist.linux-x86_64/wheel/iplearning                                         
    copying build/lib/iplearning/iplearning_report.py -> build/bdist.linux-x86_64/wheel/iplearning                              
    copying build/lib/iplearning/learnips.py -> build/bdist.linux-x86_64/wheel/iplearning                                
    copying build/lib/iplearning/disttest.py -> build/bdist.linux-x86_64/wheel/iplearning                                
    copying build/lib/iplearning/detect_new_ips.py -> build/bdist.linux-x86_64/wheel/iplearning                               
    copying build/lib/iplearning/setup.py -> build/bdist.linux-x86_64/wheel/iplearning                                 
    creating build/bdist.linux-x86_64/wheel/applearning                                         
    copying build/lib/applearning/detect_new_apps.py -> build/bdist.linux-x86_64/wheel/applearning                              
    creating build/bdist.linux-x86_64/wheel/common                                          
    copying build/lib/common/__init__.py -> build/bdist.linux-x86_64/wheel/common                                  
    copying build/lib/common/utils.py -> build/bdist.linux-x86_64/wheel/common                                   
    running install_egg_info                                               
    running egg_info                                                 
    creating mlearn.egg-info                                               
    writing top-level names to mlearn.egg-info/top_level.txt                                       
    writing mlearn.egg-info/PKG-INFO                                             
    writing dependency_links to mlearn.egg-info/dependency_links.txt                                     
    writing manifest file 'mlearn.egg-info/SOURCES.txt'                                         
    reading manifest file 'mlearn.egg-info/SOURCES.txt'                                         
    writing manifest file 'mlearn.egg-info/SOURCES.txt'                                         
    Copying mlearn.egg-info to build/bdist.linux-x86_64/wheel/mlearn-0.1-py3.5.egg-info                                 
    running install_scripts                                                
    creating build/bdist.linux-x86_64/wheel/mlearn-0.1.dist-info/WHEEL                                     
    (virtual_env_test) [email protected]:~/mlp/trunk$  

, но я не вижу whl файл. Что не так?

ответ

1

Вам не нужно ничего писать в вашем setup.py, чтобы создать колесо. До тех пор, пока ваш setup.py использует setuptools (что должно быть в любом случае), вы просто напишите нормальный setup.py, установите wheel в вашей системе и запустите python setup.py bdist_wheel.

+0

спасибо Я отредактировал вопрос – Donbeo

+0

@Donbeo: Ваше колесо находится на 'dist/mlearn-0.1 * .whl'. – jwodder