第一个pip安装包程序制作实验
Posted 魔幻云
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第一个pip安装包程序制作实验相关的知识,希望对你有一定的参考价值。
第一个pip安装包程序实验
- 经常在使用Python项目和编程中,会经常使用到pip install 包名 或者使用 easy_install 包名进行有关依赖程序包安装操作。
- 通过查看相对应的指导文档发现,该程序包可以自己编写好后进行上传到pip官网,便于其他人使用。
- 网址:https://pypi.org/
Packaging and distributing projects(打包和发布项目)
- 首先, 确认满足包安装的需求,如Python版本环境等。
- 安装"twine"模块
pip install twine
- 你需要将你的项目发布上传到PyPI。
需要上传的项目配置
初始化文件
setup.py
- 最重要的文件是setup.py,它存在于项目目录的根目录下。有关示例,请参阅PyPA示例项目中的setup.py。
- setup.py提供两个主要功能:
- 这是您的项目各个方面的配置文件。 setup.py的主要功能是它包含一个全局setup()函数。 此函数的关键字参数是您的项目的具体细节是如何定义的。 最相关的论点将在下面的部分进行解释
- 这是用于运行与打包任务相关的各种命令的命令行界面。 要获取可用命令的列表,请运行python setup.py --help-commands。
setup.cfg
- 是一个ini文件,其中包含setup.py命令的默认选项。 有关示例,请参阅PyPA示例项目中的setup.cfg。
README.rst / README.md 文件
-
所有项目都应该包含一个涵盖项目目标的自述文件。最常见的格式是带有“rst”扩展名的reStructuredText,虽然这不是要求;Markdown的多种变体也被支持(查看setup()的long_description_content_type参数)
注意使用setuptools的项目默认情况下包含在源代码分发中的README.rst(自0.6.27开始)。
内置的distutils库在Python 3.7中开始采用这种行为。
如果您使用setuptools,则不需要在MANIFEST.in中列出README.rst。
否则,包括它是明确的。
MANIFEST.in
LICENSE.txt
你的项目包
- 包的名称最好和你的顶级项目包名称一致
- 案列:https://github.com/pypa/sampleproject
注意事项
- Python 模块或者包名应该遵守以下的规则:
- 全小写
- 不要和pypi上已有的包名重复,即使你不想公开发布你的包,因为你的包可能作为其他包的依赖包
- 使用下划线分隔单词或者什么都不用(不要使用连字符)
- 现在把我们的函数变成一个Python module
开始工作
- 目录结构 funniest 如下:
pipfunctiontest/ pipfunctiontest/ __init__.py setup.py
最外层的目录是我们版本管理工具的根目录, 例如 funniest.git . 子目录也叫 funniest , 代表Python module.
- 为了更好理解, 我们把函数 joke() 放到 init.py 中:
def joke(): return (u‘How do you tell html from HTML5?‘ u‘Try it out in Internet Explorer.‘ u‘Does it work?‘ u‘No?‘ u‘It\‘s HTML5.‘)
- 最主要的setup配置文件是 setup.py , 应该包含一行代码调用 setuptools.setup() ,就像下面这样:
from setuptools import setup setup(name=‘pipfunctiontest‘, version=‘v1.0‘, description=‘The pipfunctiontest joke in the world‘, url=‘http://github.com/storborg/pipfunctiontest‘, author=‘Flying Circus‘, author_email=‘[email protected]‘, license=‘MIT‘, packages=[‘pipfunctiontest‘], zip_safe=False)
- 现在我们可以在本地安装这个python包:
$ python setup.py install
- 我们也可以使用开发模式安装这个包, 每次修改代码之后不用重新安装, 立即可用最新的代码.:
$ python setup.py develop
- 不管用哪种方式,安装之后就可以在python中使用这个包:
>>> import pipfunctiontest >>> print pipfunctiontest.joke()
- 在PyPI上发布
- 脚本 setup.py 也是在PyPI注册和上传源码包的入口.
- 第一步创建一个源码包:
$ python setup.py sdist
- 上面register和upload会失败,因此需要采用之前安装的twine
twine upload dist/* #打包好的代码包
- 安装这个包
- 上面的步骤完成之后, 其他用户可以直接用 easy_install 安装:
easy_install pipfunctiontest
- 或者使用 pip
$ pip install pipfunctiontest
以上是关于第一个pip安装包程序制作实验的主要内容,如果未能解决你的问题,请参考以下文章
我可以在不在 pypi 中注册包的情况下制作 pip 可安装包吗?