blog.petitviolet.net

パッケージを作成し、PyPIに登録したメモ

2014-04-21

QiitaPython

Python でパッケージを作って、PyPIに登録した時の作業メモ なお、今回はコマンドラインツールを作りました

PyPI に登録することによってpipでインストール出来るようになります

ディレクトリ構成

├── README.md
├── requirements.txt
├── setup.py
└── src
    ├── __init__.py
    └── hoge.py

ファイル詳細

  • requirements.txt、src/init.py

    touchで作った空ファイルです

  • README.md

    github用

  • src/hoge.py

    実装したパッケージのソースコード 今回はコマンドラインツールなので、main関数に実行する処理を記述しておきました

  • setup.py パッケージを登録する際に必要な情報を記載します

    from setuptools import setup, find_packages
    
      	setup(
    
    name='pass-manager',
    version='1.0.0',
    author='petitviolet',
    author_email='hoge@gmail.com',
    packages=find_packages(),
    install_requires=[],
    description = 'CLI tool',
    long_description = 'Simple CLI tool',
    url = 'https://example.com/',
    license = 'MIT', # scripts = ['src/hoge.py'],
    platforms = ['Mac OS X'], # platforms = ['POSIX', 'Windows', 'Mac OS X'],
    entry_points={
    'console_scripts': 'hoge = src.hoge:main'
    },
    zip_safe=False,
    classifiers=[
    'Environment :: Console',
    'Intended Audience :: Developers',
    'Operating System :: OS Independent',
    'Programming Language :: Python',
    'Topic :: Utilities'
    ]
    )

    classfierslicensehttps://pypi.python.org/pypi?:action=list_classifiersを見て入力すると良いと思います。

登録作業

# setup.pyのチェック
$ python setup.py check
# -> "running check"と出力される
$ python setup.py register
running register
...
We need to know who you are, so please choose either:
1. use your existing login,
2. register as a new user,
3. have the server generate a new password for you (and email it to you), or
4. quit
Your selection [default 1]:

これで2を選択して、username や password を登録して下さい 実際にユーザーアカウントが作成されます なお、password はちゃんとした強度がないと怒られてしまいます

python setup.py register sdist bdist bdist_egg upload

これで PyPI にソースとバイナリと egg をアップロードすることが出来ます。

アップロードしたパッケージには http://pypi.python.org/pypi/“PKG-NAME” でアクセス出来るようになります パッケージの情報(setup.py に記載した内容)は PyPI のパッケージのページからも編集できるようになっています

from: https://qiita.com/petitviolet/items/631f57566428494894fd