2014-01-17 6 views
2

Im следующих учебник на пакетах Python и пытаюсь понять, что здесь делает линия «пакеты» ..пакетов в setup.py файле

install_requires будет установить все программное обеспечение, которые приведены в списке ... Так , что делают пакеты?

from distutils.core import setup 

setup(
    name='TowelStuff', 
    version='0.1.0', 
    author='J. Random Hacker', 
    author_email='[email protected]', 
    packages=['towelstuff', 'towelstuff.test'], 
    scripts=['bin/stowe-towels.py','bin/wash-towels.py'], 
    url='http://pypi.python.org/pypi/TowelStuff/', 
    license='LICENSE.txt', 
    description='Useful towel-related stuff.', 
    long_description=open('README.txt').read(), 
    install_requires=[ 
     "Django >= 1.1.1", 
     "caldav == 0.1.4", 
    ], 
) 

ответ

2

Вы можете посмотреть на этот раздел документации disutils, что дает полное объяснение: http://docs.python.org/2/distutils/setupscript.html#listing-whole-packages

Но короче говоря, «пакеты» относится к вашего кода, а не внешних зависимостей. Если ваш setup.py файл живет в верхнем уровне каталога вашего проекта, и списки аргументов ваших «пакеты» towelstuff и towelstuff.test, вот как структура каталогов должна выглядеть:

setup.py 
towelstuff 
    __init__.py 
    ...some other files in towelstuff... 
towelstuff.test 
    __init__.py 
    ...some other files in towelstuff.test... 
...some other scripts in the project directory... 

В принципе, пакет Python является просто каталог, содержащий файл '__init__.py'. Когда вы пишете файл setup.py, как вы, вы обещаете setup.py, что есть два пакета (towelstuff и towelstuff.test), которые живут в том же каталоге, что и сценарий setup.py.

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

+0

+1 Ваш ответ более ясный, чем мой. (Удаление шахты). – mshildt

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