我正在学习Python软件包,并试图了解这里的“软件包”行是什么。
install_requires将安装列表中给出的所有软件......那么,包的作用是什么?
from distutils.core import setup
setup(
name='TowelStuff',
version='0.1.0',
author='J. Random Hacker',
author_email='jrh@example.com',
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",
],
)
答案 0 :(得分:4)
您可以查看disutils文档的这一部分,其中提供了完整的解释:http://docs.python.org/2/distutils/setupscript.html#listing-whole-packages
但简而言之,'packages'指的是你的代码,而不是外部依赖。如果您的setup.py文件位于项目的顶级目录中,并且您的'packages'参数列出了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捆绑您的应用程序时,这两个包将包含在发行版中。