推广 热搜: csgo  vue  angelababy  2023  gps  新车  htc  落地  app  p2p 

新手如何发布第一个Python项目开源包?这里有一份详细指南

   2023-08-29 网络整理佚名1590
核心提示:项目(一个对算法训练时间进行估计的包)的发布为例,详细解释了发布的每个步骤。上已经有一个想要打包和发布的项目。在这个文件夹中放置你需要的所有测试文件,以便尽可能多地包含你的核心代码。文件来决定要在覆盖率分析中包含哪些文件。文件应该相当综合,因此通常会有一个更详细的文档。文件的示例:请注意,每次提交,测试都需要与检查测试覆盖率一起进行。

终于写出一个项目了,兴奋吗? 那么如何把这个项目发出来给大家看呢? 本文的作者编写了在 .

作者以项目(估算算法训练时间的包)的发布为例,详细讲解了发布的每一步。

注意:本文假设您已经在网络上有一个要打包和发布的项目。

第0步:获得项目许可证

在做任何其他事情之前,由于您的项目将是开源的,因此它应该有一个许可证。 获取哪个取决于项目包的使用方式。 开源项目中的一些常见许可证是 MIT 或 BSD。

要向您的项目添加许可证,只需按照以下链接中的步骤将文件添加到项目存储库的根目录即可:

第 1 步:准备好代码

打包项目需要做一些准备工作:

from .estimate import Estimator

以.py为例,如果是最终用户会访问的类(该类是在.py文件中定义的)

import logging
class LogMixin(object):
 @property
 def logger(self):
 name = '.'.join([self.__module__, self.__class__.__name__])
 FORMAT = '%(name)s:%(levelname)s:%(message)s'
 logging.basicConfig(format=FORMAT, level=logging.DEBUG)
 logger = logging.getLogger(name)
 return logger

以日志系统为例:该类可以在任何其他类中使用

步骤2:使用打包工具创建setup.py

有了项目的结构后,您应该将 setup.py 文件添加到项目存储库的根目录中。 这有助于所有发布和版本维护流程的自动化。 这是一个示例 setup.py (源代码:)。

from setuptools import setup
from os import path
DIR = path.dirname(path.abspath(__file__))
INSTALL_PACKAGES = open(path.join(DIR, 'requirements.txt')).read().splitlines()
with open(path.join(DIR, 'README.md')) as f:
 README = f.read()
setup(
 name='scitime',
 packages=['scitime'],
 description="Training time estimator for scikit-learn algorithms",
 long_description=README,
 long_description_content_type='text/markdown',
 install_requires=INSTALL_PACKAGES,
 version='0.0.2',
 url='http://github.com/nathan-toubiana/scitime',
 author='Gabriel Lerner & Nathan Toubiana',
 author_email='toubiana.nathan@gmail.com',
 keywords=['machine-learning', 'scikit-learn', 'training-time'],
 tests_require=[
 'pytest',
 'pytest-cov',
 'pytest-sugar'
 ],
 package_data={
 # include json and pkl files
 '': ['*.json', 'modelsscitime_data.py
 */setup.py

。 文件示例

步骤 4:标准化语法和编码风格

您还需要确保您的代码遵循 PEP8 准则(即具有标准样式并且语法正确)。 同样,有很多工具可以帮助您。 这里我们使用它。

第五步:创建合理的文档

现在您的项目已经过测试并且结构良好,是时候添加合理的文档了。 首先是要有一个好的文件,它将显示在项目存储库的根目录中。 完成后,最好添加以下内容:

由于文档应该相当全面,因此通常会有更详细的文档。 您可以使用它来完成并管理其上的文档。 文档相关的文件通常放置在 docs/ 文件夹中。 以及相关教程: .

带有标签和描述的项目库示例

第 6 步:创建持续集成

此时,您的项目距离发布准备就绪已经不远了。 然而,每次提交后都必须更新文档、运行测试以及检查样式和覆盖率,这似乎有点让人不知所措。 幸运的是,持续集成(CI)可以帮助您做到这一点。 您可以在每次提交后使用自动完成所有这些操作。 这是我们使用的一组 CI 工具:

language: python
python:
 - "3.6"
# command to install dependencies
install:
 - pip install -r requirements.txt
 - pip install flake8
 - pip install pytest-cov
 - pip install codecov
# command to run tests
script:
 - python -m pytest --cov=scitime
 - ./build_tools/flake_diff.sh
after_success:
 - codecov

..yml 文件示例:请注意,对于每次提交,都需要运行测试并检查测试覆盖率。 但还有一项检查(逻辑在 .sh 文件中定义:)

environment:
 matrix:
 - PYTHON: "C:\\Python36-x64"
install:
 # We need wheel installed to build wheels
 - "%PYTHON%\\python.exe -m pip install -r requirements.txt"
 - "%PYTHON%\\python.exe -m pip install pytest==3.2.1"
build: off
test_script:
 - "%PYTHON%\\python.exe -m pytest"

示例 .yml 文件:这里我们只运行测试

这将使更新项目库的整个过程变得更加容易。

集成提交历史记录示例

第 7 步:创建您的第一个和

此时,您即将推出的包应类似于以下内容:

your_package/
 __init__.py
 your_module.py
docs/
tests/
setup.py
travis.yml
appveyor.yml
.coveragerc
.codecov.yml
README.md
LICENSE
.github/
 CODE_OF_CONDUCT.md
 CONTRIBUTING.md
 PULL_REQUEST_TEMPLATE.md
 ISSUE_TEMPLATE/

现在准备发布! 要做的第一件事是创建您的第一个 - 这是为了跟踪项目在给定时间点的状态,每次版本更改时您都需要创建新的。 创建步骤: .

完成后,唯一要做的就是发布包。 最常见的分发包的平台是 PyPI 和 Conda。 下面我们描述如何使用两者进行发布:

结束!

您的包裹现在应该已发货并可供任何人使用! 虽然大部分工作已经完成,但您仍然需要维护您的项目,并且需要进行一些更新:这基本上意味着每次进行重大更改时都更改版本,创建一个新版本,然后再次执行步骤 7。

原文链接:

欲了解更多信息,请参阅:

%3A%2F%%2F两小时后--如何保持--健康--%%%26sk%)

 
标签: 项目库
反对 0举报 0 收藏 0 打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报
Powered By DESTOON