Python 是一门流行的编程语言,灵活性高、易于学习,能够实现许多应用。在编写 Python 代码时,我们常常需要用到各种不同的模块。对于重复使用的代码,我们可以将它们打包成一个包,方便管理和调用代码。
本文将介绍 Python 制作自定义包并安装到系统目录的方法。下面是详细的步骤:
1.创建包目录结构
第一步是创建包的目录结构。在包的根目录下,应该包含一个 setup.py
文件和一个包的名称文件夹。包名称文件夹应该包含一个 __init__.py
文件和任何其他需要的 Python 模块。
假设我们创建一个名为 example_pkg
的包,目录结构应该是这样的:
example_pkg/
setup.py
example/
__init__.py
module1.py
module2.py
...
-
setup.py
文件里面应该包含一些元数据,如包的名称、版本等,要注意这些信息务必与包中使用的一致。 -
example/__init__.py
是包的入口文件,其中可以定义包级别的变量和包级别的函数。 -
example/module1.py
等模块文件则是普通的 Python 模块,其中包含要共享的类和函数。
2.编写 setup.py
下一步是编写 setup.py
文件。这个文件描述了如何将你的包安装到系统上。其中包括一些元数据以及依赖项的描述(如果有的话)。
示例 1:
下面是一个最基本的 setup.py
文件:
from setuptools import setup, find_packages
setup(
name='examplepkg',
version='0.1',
packages=find_packages(),
install_requires=[],
entry_points={
'console_scripts': [
'example = example_pkg.example.module1:main'
]
}
)
在这个文件中,主要涉及到以下内容:
-
导入了必要的函数和类,如
setup
和find_packages
。 -
设置了包的名称、版本号和安装时所需的其他包。
-
使用
find_packages()
函数自动查找包及其子包,并将其包含在packages
列表中。 -
entry_points
部分描述了这个包含有可执行文件。在上面的例子中,我们将example
绑定到了example_pkg.example.module1:main
。这意味着我们可以在终端运行example
,并运行example_pkg/example/module1.py
中的main
函数。
示例 2:
接下来,你可能需要更多的功能,如在不同 OS 上安装依赖项。下面是一个稍微更复杂的例子:
from setuptools import setup, find_packages
setup(
name='examplepkg',
version='0.1',
packages=find_packages(),
install_requires=[
'numpy',
'pandas',
'matplotlib',
],
platforms='any',
extras_require={
'web': ['flask', 'flask-login'],
'data': ['pandas', 'numpy'],
'image': ['opencv-python', 'pillow'],
},
classifiers=[
'Development Status :: 5 - Production/Stable',
'Environment :: Web Environment',
'Intended Audience :: Developers',
'License :: OSI Approved :: MIT License',
'Operating System :: OS Independent',
'Programming Language :: Python',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9',
'Topic :: Internet :: WWW/HTTP :: Dynamic Content',
'Topic :: Software Development :: Libraries :: Python Modules',
],
)
这个文件在基础上增加了以下内容:
-
添加了依赖项列表
install_requires
。这意味着在安装时必须安装此列表中的所有库。 -
使用
extras_require
对其他依赖项进行了分类。例如,在安装examplepkg
时,如果需要的是web
功能,需要使用以下命令来安装它:pip install examplepkg[web]
。 -
classifiers
通过提供各种元数据,使包更易于发现和分类。可以根据需要进行配置。
3.构建包
有了 setup.py
,现在可以开始构建包了。在包含 setup.py
的目录中运行以下命令:
python setup.py sdist bdist_wheel
这会构建一个源分发包和一个 wheel 文件,在 dist 文件夹中可以找到。生成的 wheel 文件能用于快速安装,并且在比源码分发包更加端到端。
4.安装包
最后一步是将包安装到你的系统上。可以使用以下命令:
pip install examplepkg-0.1-py3-none-any.whl
或:
pip install examplepkg-0.1.tar.gz
这将在系统上安装名为example_pkg
的包,可以在 Python 的任何地方导入它。
以上就是 Python 制作自定义包并安装到系统目录的完整攻略。希望对你有帮助!
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python 制作自定义包并安装到系统目录的方法 - Python技术站