• <center id="q6uyy"><td id="q6uyy"></td></center>
    <dd id="q6uyy"></dd>
  • 推廣 熱搜: csgo  vue  angelababy  2023  gps  新車  htc  落地  app  p2p 

    新手如何發布第一個Python項目開源包?這里有一份詳細指南

       2023-08-29 網絡整理佚名1490
    核心提示:項目(一個對算法訓練時間進行估計的包)的發布為例,詳細解釋了發布的每個步驟。上已經有一個想要打包和發布的項目。在這個文件夾中放置你需要的所有測試文件,以便盡可能多地包含你的核心代碼。文件來決定要在覆蓋率分析中包含哪些文件。文件應該相當綜合,因此通常會有一個更詳細的文檔。文件的示例:請注意,每次提交,測試都需要與檢查測試覆蓋率一起進行。

    終于寫出一個項目了,興奮嗎? 那么如何把這個項目發出來給大家看呢? 本文的作者編寫了在 .

    作者以項目(估算算法訓練時間的包)的發布為例,詳細講解了發布的每一步。

    注意:本文假設您已經在網絡上有一個要打包和發布的項目。

    第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
     
    三级精品影视国产,欧美乱伦免费综合,亚洲a在线中文,人妻色综合网站
  • <center id="q6uyy"><td id="q6uyy"></td></center>
    <dd id="q6uyy"></dd>