自作モジュールをGitHubにアップロードしてからpipでインストールする


投稿日 2023年1月27日 >> 更新日 2023年1月30日

概要

自作したモジュールをGitHubにアップロードし、アップロードされたリモートリポジトリをpipでインストールします。

開発環境

開発環境
Windows Subsystem for Linux 1
Python 3.7.0
pip 22.3.1

準備するファイル

pipで自作モジュールをサードパーティとしてインストールするには、「pyproject.toml」ファイルか「setup.py」ファイルが必要です。

これらのファイルはソフトウェアを開発するに当たって使用される設定ファイルで、自作モジュールの情報を記載しておくことでpipで簡単にインストールすることができます。

試しに「pyproject.toml」「setup.py」が無い状態でpipインストールをしてみると以下のようなエラーとなります。

$ pip install .
ERROR: Directory '.' is not installable. Neither 'setup.py' nor 'pyproject.toml' found.

ここでは「pyproject.toml」を作成して自作モジュールをインストールしていきます。

ディレクトリの構造は以下のような形とします。

my_project
    |-- src/
        |-- site_requests/
            |-- __init__.py
            |-- example.py
    |-- venv/

「src」ディレクトリ内にはソースコードである自作モジュールが格納されています。

では自作モジュールの設定ファイル「pyproject.toml」を作成します。

以下が最も簡素な「pyproject.toml」の内容です。

[project]
name = "site_requests"
version = "0.0.1"

dependencies =  [
    "bs4 == 0.0.1",
    "requests >= 2.28.2",
]

上記の設定内容は自作モジュール名、モジュールのバージョン、依存関係先のサードパーティ名です。

依存先が無ければもっと簡素ですが、PyPIにアップロードするようなモジュールであれば複雑になります。

よってここまでのディレクトリ構造は以下のようになりました。

my_project
    |-- pyproject.toml # 追加
    |-- src/
        |-- site_requests/
            |-- __init__.py
            |-- example.py
    |-- venv/

設定ファイルを作業ディレクトリに配置することにより、自作モジュールをpipでインストールすることができます。

(venv)$ pip install .

これで準備するファイルが揃いました。

自作モジュールをGitHubにアップロードし、リモートレポジトリからpipでインストールする

GitHubにアップロードする際の前準備

以下のようなディレクトリ構成のファイル群をGitHubにアップロードしていきます。

my_project
    |-- .gitignore # 追加
    |-- LICENSE # 追加
    |-- pyproject.toml
    |-- src/
        |-- site_requests/
            |-- __init__.py
            |-- example.py
    |-- venv/ # 除外対象

除外したいファイルがあれば「.gitignore」ファイルに記述していきます。

(venv)$ echo -e '*.pyc\nvenv'
*.pyc
venv

(venv)$ echo -e '*.pyc\nvenv' > .gitignore

pipでサードパーティをインストールする際、「LICENSE」ファイルがあることを必須としているので、とりあえず空のファイルを作成しておきます。

(venv)$ touch LICENSE

一通り最低限必要なファイル群が揃ったら、GitHubのWebサイトからレポジトリを新規に作成します。

レポジトリの作成に関しては以下の記事をご参照ください。

問題無く転送されると以下のようなレポジトリとなります。

GitHubのリモートリポジトリをpipでインストールする

GitHubにアップロードされているモジュールをpipでインストールするためには、「pyproject.toml」か「setup.py」、そして「LICENSE」ファイルが必要となります。

「pyproject.toml」と「setup.py」は設定ファイルなので、どちらかの設定ファイルと「LICENSE」ファイルがあれば良いです。

以下は「pyproject.toml」が配置されているリポジトリとなります。

右上の「Code」をクリックしてURLをコポーします。

リポジトリのURLをコポーすることができたら、他の開発環境を利用してpipでインストールしてみましょう。

(venv)$ pip install git+https://github.com/user-name/site-requests.git

(venv)$ pip freeze
beautifulsoup4==4.11.1
bs4==0.0.1
certifi==2022.12.7
charset-normalizer==3.0.1
idna==3.4
requests==2.28.2
site-requests @ git+https://github.com/user-name/site-requests.git@ce9f8f3811992ce0ecb1573100af67d250bf2e84
soupsieve==2.3.2.post1
urllib3==1.26.14

他にも、クローンで複製してからpipでインストールすることもできます。

(venv)$ git clone https://github.com/user-name/site-requests.git

(venv)$ ls
site-requests venv

(venv)$ pip install site-requests/.

(venv)$ pip freeze
beautifulsoup4==4.11.1
bs4==0.0.1
certifi==2022.12.7
charset-normalizer==3.0.1
idna==3.4
requests==2.28.2
site-requests @ file:///mnt/c/Users/Documents/site-requests
soupsieve==2.3.2.post1
urllib3==1.26.14

それでは以上となります。

最後までご覧いただきありがとうございました。