Python的setup指的是安装Python模块时所需的配置文件和脚本,这个配置文件通常是一个名为setup.py的Python脚本。
一、创建setup.py文件
在Python模块中,我们需要在根目录下创建一个叫做setup.py的文件,这个文件包含了一些指令或参数,它们描述了我们的项目,例如项目名称、版本、作者、描述、依赖等等。
以下是一个简单的setup.py文件示例:
from setuptools import setup, find_packages setup( name='myproject', version='1.0.0', author='username', packages=find_packages(), description='My project description', install_requires=['requests'], classifiers=[ 'Programming Language :: Python :: 3', 'License :: OSI Approved :: MIT License', 'Operating System :: OS Independent' ], )
这是一个非常简单的示例,其中包含了name、version、author、packages等必要的参数,以及一个描述description和依赖项install_requires。这些参数都是可以自定义的。
二、执行setup.py文件
在创建好setup.py文件后,我们可以使用以下命令来创建并安装我们的Python模块:
python setup.py sdist bdist_wheel pip install .
首先,我们需要在命令行中进入项目根目录,然后输入python setup.py sdist bdist_wheel来创建一个源分发包和一个wheel二进制分发包。这两个包分别用于源码安装和二进制安装。
随后,我们可以使用pip install .来进行模块的安装。这个命令会安装当前目录下的wheel包,并将其添加到Python的site-packages中。
三、依赖管理
Python的setup还有一个非常重要的作用就是可以让我们管理我们的依赖,一个好的依赖管理可以让我们的项目更加健壮和可维护。
在示例中,我们已经使用了install_requires来指定依赖项,它会在执行pip install .时一并安装。
此外,还可以使用extras_require来指定可选依赖项,例如我们的项目可能有一个可选的GUI界面,因此我们可以在setup.py中加入以下代码:
extras_require={ 'GUI': ['wxPython'], },
这里的‘GUI’表示我们给这个可选依赖项起的名称,’wxPython’表示这个可选依赖项所需要的依赖。
可以使用以下命令来安装我们的依赖项,包括可选依赖项:
pip install .[GUI]
四、命令行工具
通过Python的setup,我们可以将我们的Python模块作为一个命令行工具进行发布,例如下面这个命令行计算器的示例:
from setuptools import setup, find_packages setup( ... entry_points={ 'console_scripts': [ 'calculator=calculator.main:main', ], }, ... )
在entry_points中,我们定义了一个console_scripts命令行入口,这里的‘calculator’是命令的名称,后面的‘calculator.main:main’表示执行的Python模块和函数。
这个命令可以通过pip安装之后在命令行中使用,例如:
$ calculator 1 + 1 2
五、总结
Python中的setup是一个非常重要的工具,它可以帮助我们创建、打包、发布、安装Python模块,并且可以管理我们的依赖和命令行工具。通过合理使用setup.py文件,我们可以更好地维护我们的Python项目。