GistでPythonパッケージを公開する

Posted by rhoboro on 2020-10-25

古い記事ですがGistでGemを公開という記事を見かけたので、これはPython(pip)でもできるはずと思い実際に試してみました。

試しにやってみましたが、実際に利用するかどうかはわかりません(笑)
個人的かつ1ファイルで済む場合は役立つシーンがあるかも?

Gistに置くファイル

最小構成だとこんな感じです。 ここではgistpyという名前のパッケージにしました。

  • setup.py
from setuptools import setup, find_packages


def main():
    setup(
        name="gistpy",
        version="1.0.0",
        license="Apache License 2.0",
        author="...",
        author_email="...",
        description="gistpy is a sample module for trying to install from gist.",
        long_description_content_type="text/markdown",
        py_modules=["gistpy"],
        classifiers=[
            "Programming Language :: Python :: 3",
            "Programming Language :: Python :: 3.8",
            "Programming Language :: Python :: 3.9",
        ],
    )


if __name__ == "__main__":
    main()

パッケージの中身となる処理はgistpy.pyに記述します。

  • gistpy.py
def func():
    print("Success!!")

インストール

インストールはGistのURLにgit+.gitをつけて指定するだけ。1
今回のGistはhttps://gist.github.com/rhoboro/c7d028fd20c4bb6591ece39b3fbe7949にあります。

$ pip3 install git+https://gist.github.com/rhoboro/c7d028fd20c4bb6591ece39b3fbe7949.git
Collecting git+https://gist.github.com/rhoboro/c7d028fd20c4bb6591ece39b3fbe7949.git
  Cloning https://gist.github.com/rhoboro/c7d028fd20c4bb6591ece39b3fbe7949.git to /private/var/folders/63/rn3zp2f52yqcp4hx4ljf2pm00000gn/T/pip-req-build-3dljiudq
Using legacy 'setup.py install' for gistpy, since package 'wheel' is not installed.
Installing collected packages: gistpy
  Running setup.py install for gistpy ... done
Successfully installed gistpy-1.0.0

あとは普通にインポートして利用できます。

$ python3 -q
>>> from gistpy import func
>>> func()
Success!!
>>>

  1. サフィックスの.gitに関しては追加しなくてもインストールされます 

tags: GitHub, Python, Gist