pypiのインストールライブラリを作成する


  • ダウンロードアドレス
  • 配布ツールの作成方法
  • setuppy
  • ソースパケット
  • その他のファイル
  • 製作過程
  • まず登場したのはsetuppyに違いない.
  • そしてLICENCE
  • 登録

  • テスト
  • まとめ

  • Pythonに触れてから数ヶ月が経ち、主な開発言語はJavaですが、Pythonにも夢中になりました.Pythonがなぜこんなに怒っているのかはよく知られていますが、その大きな原因の一つは豊富で強力なライブラリサポートがあり、これまで他人のライブラリを使っていたことですが、今回はブロガーも自分で配布版を作ってみました.
    ダウンロードアドレス
    作成したのは命令行の下の翻訳ツールで、英漢中の単語、文の相互訳を実現することができます.もちろん、サードパーティのインタフェースも借りています.
  • ソースコードはGithubに管理されています.https://github.com/guoruibiao/MyTranslator
  • pipインストール
    pip install mytranslator
  • はpypi公式プラットフォームでもダウンロードできます.
  • 配布ツールをどのように作成しますか?
    まず、次のファイルディレクトリを見てみましょう.
    これが比較の基礎です.必要なファイルはsetup.pymytranslator です.他の必要でないオプションです.その他の詳細については、以下を参照してください.https://packaging.python.org/distributing/#uploading-your-project-to-pypi https://wiki.python.org/moin/TestPyPI.
    英語だらけなので、心に耐えてゆっくり読む必要がありますよ.
    setup.py
    私たちがパッケージ化したり、Pythonのソースコードをインストールしたりするときに依存しているのは、このファイルで、1つのPythonライブラリをインストールして使用するすべての情報が構成されています.重要です.公式の解釈も詳しいので、人の公式配置を見て、必要に応じて調整すればいいです.
    """A setuptools based setup module. See: https://packaging.python.org/en/latest/distributing.html https://github.com/pypa/sampleproject """
    
    # Always prefer setuptools over distutils
    from setuptools import setup, find_packages
    # To use a consistent encoding
    from codecs import open
    from os import path
    
    here = path.abspath(path.dirname(__file__))
    
    # Get the long description from the README file
    with open(path.join(here, 'README.rst'), encoding='utf-8') as f:
        long_description = f.read()
    
    setup(
        name='sample',
    
        # Versions should comply with PEP440. For a discussion on single-sourcing
        # the version across setup.py and the project code, see
        # https://packaging.python.org/en/latest/single_source_version.html
        version='1.2.0',
    
        description='A sample Python project',
        long_description=long_description,
    
        # The project's main homepage.
        url='https://github.com/pypa/sampleproject',
    
        # Author details
        author='The Python Packaging Authority',
        author_email='[email protected]',
    
        # Choose your license
        license='MIT',
    
        # See https://pypi.python.org/pypi?%3Aaction=list_classifiers
        classifiers=[
            # How mature is this project? Common values are
            # 3 - Alpha
            # 4 - Beta
            # 5 - Production/Stable
            'Development Status :: 3 - Alpha',
    
            # Indicate who your project is intended for
            'Intended Audience :: Developers',
            'Topic :: Software Development :: Build Tools',
    
            # Pick your license as you wish (should match "license" above)
            'License :: OSI Approved :: MIT License',
    
            # Specify the Python versions you support here. In particular, ensure
            # that you indicate whether you support Python 2, Python 3 or both.
            'Programming Language :: Python :: 2',
            'Programming Language :: Python :: 2.6',
            'Programming Language :: Python :: 2.7',
            'Programming Language :: Python :: 3',
            'Programming Language :: Python :: 3.3',
            'Programming Language :: Python :: 3.4',
            'Programming Language :: Python :: 3.5',
        ],
    
        # What does your project relate to?
        keywords='sample setuptools development',
    
        # You can just specify the packages manually here if your project is
        # simple. Or you can use find_packages().
        packages=find_packages(exclude=['contrib', 'docs', 'tests']),
    
        # Alternatively, if you want to distribute just a my_module.py, uncomment
        # this:
        # py_modules=["my_module"],
    
        # List run-time dependencies here. These will be installed by pip when
        # your project is installed. For an analysis of "install_requires" vs pip's
        # requirements files see:
        # https://packaging.python.org/en/latest/requirements.html
        install_requires=['peppercorn'],
    
        # List additional groups of dependencies here (e.g. development
        # dependencies). You can install these using the following syntax,
        # for example:
        # $ pip install -e .[dev,test]
        extras_require={
            'dev': ['check-manifest'],
            'test': ['coverage'],
        },
    
        # If there are data files included in your packages that need to be
        # installed, specify them here. If using Python 2.6 or less, then these
        # have to be included in MANIFEST.in as well.
        package_data={
            'sample': ['package_data.dat'],
        },
    
        # Although 'package_data' is the preferred approach, in some case you may
        # need to place data files outside of your packages. See:
        # http://docs.python.org/3.4/distutils/setupscript.html#installing-additional-files # noqa
        # In this case, 'data_file' will be installed into '<sys.prefix>/my_data'
        data_files=[('my_data', ['data/data_file'])],
    
        # To provide executable scripts, use entry points in preference to the
        # "scripts" keyword. Entry points provide cross-platform support and allow
        # pip to create the appropriate form of executable for the target platform.
        entry_points={
            'console_scripts': [
                'sample=sample:main',
            ],
        },
    )

    ソースパッケージ
    ここではパッケージの概念に関係していますが、一般的には__init__.pyファイルを含むフォルダですので、一応このように理解してください.このフォルダには、私たちのコードを実行できる最小コンポーネント、関数ライブラリが含まれています.これで一つのバッグと呼ぶことができます.
    ブロガーのここの小道具は比較的簡単で、以下の通りです.
    
     E:\Code\Python\DataStructor\translate\mytranslator    
    
    2016/10/08  15:52    <DIR>          .
    2016/10/08  15:52    <DIR>          ..
    2016/09/29  09:12                50 mytranslate.bat
    2016/10/08  15:50             1,221 translate.py
    2016/10/08  15:51               151 __init__.py
                   3              1,422   
                   2     87,527,870,464     
    

    その他のファイル
    他のファイルは、ユーザーがこのプロジェクトをより深く理解するために存在し、パッケージにはあまり関連していませんが、重要ではありません.特にREADME.mdファイルとLICENCEファイルは、非常に価値があります.LICENCEの概念はよく知られていないかもしれませんが、興味があるのはブロガーが前に転載した文章を参考にすることができます.http://blog.csdn.net/marksinoberg/article/details/52337214
    様々なオープンソースプロトコルは、以下にまとめることができます.
    (写真はチェン一峰ブログに転載)
    作成プロセス
    ブロガーがこの小道具を作る過程について話しましょう.
    まず出場するのはsetupに違いない.pyしました.次のようになります.
    # coding:utf-8
    from setuptools import setup, find_packages
    
    setup(
        name='mytranslator',
        description='Simple translator in English and Chinese, easier to use',
        url='https://github.com/guoruibiao/MyTranslator',
        version='1.0.1',
        license='MIT',
        packages=find_packages(),
        entry_points = {
            "console_points": ['trans = mytranslator.translate:main']
        },
    )

    そしてLICENCE
    MIT License
    
    Copyright (c) 2016
    
    Permission is hereby granted, free of charge, to any person obtaining a copy
    of this software and associated documentation files (the "Software"), to deal
    in the Software without restriction, including without limitation the rights
    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    copies of the Software, and to permit persons to whom the Software is
    furnished to do so, subject to the following conditions:
    
    The above copyright notice and this permission notice shall be included in all
    copies or substantial portions of the Software.
    
    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    SOFTWARE.

    これで基本的にいいです.
    登録
    登録する前に、公式サイトにアカウントを登録したほうがいいです.これは今後、自分のライブラリをアップロードするのに役立つからです.
    公式サイトは以下の通りです.https://pypi.python.org/pypi/
    ユーザー名はASCIIでサポートされており、パスワードはアルファベットに数字を加えればよいことに注意してください.完成したら次の仕事ができます.
    プロジェクトのルートディレクトリに次のように入力します.
    python setup.py register sdist upload
    次に、デフォルトで数字1を選択するオプションがあります.私たちは自分の状況で入力することができます.ブロガーはアカウントを登録したので1を選択した.
    最後に、ライブラリがpypiにアップロードされたことを示す文字が表示されます.
    running upload
    Submitting dist\mytranslator-1.0.1.zip to https://pypi.python.org/pypi
    Server response (200): OK
    

    この時、自分のプロジェクトのフォルダの下に何かが増えていることに気づきます.基本的に下図のようになります.
    テスト
    続いてPython 2.7の仲間たちは自分でブロガーのこのライブラリをダウンロードすることができます.何の役に立つのでしょうか?
    実は命令行の下で英語の中国語の単語、文の翻訳を実現することができます.さらに、Windowについては、符号化のサポートが特に最適化されている.詳しくはブロガーの前の記事を参考にしてくださいhttp://blog.csdn.net/marksinoberg/article/details/52701650
  • 英語転中国語
  • 中国語転英文
  • よし、くだらないことは言わないで.このライブラリのインストール方法を紹介しましょう.
    インストール時に、以下の文字が表示されます.おめでとうございます.ブロガーのライブラリをインストールできました.
    (temp) E:\Code\Python\temp\Scripts>pip install mytranslator
    Collecting mytranslator
      Downloading mytranslator-1.0.1.zip
    Building wheels for collected packages: mytranslator
      Running setup.py bdist_wheel for mytranslator ... done
      Stored in directory: C:\Users\Administrator\AppData\Local\pip\Cache\wheels\ec\29\22\f37da8b8f8fef3
    a08472f50c0a084995236ba10cf8af52bb20
    Successfully built mytranslator
    Installing collected packages: mytranslator
    Successfully installed mytranslator-1.0.1
    

    まとめ
    例によって、最後の点はこの文章の主な内容を振り返ることです.
    自分のPython配布版ライブラリを作成するために必要な知識.および詳細なプロセスの紹介.
    知識点は難しくなく、試してみることに重点を置いて、今すぐ手を出して、あなたの配布版を作ってみましょう.