日々精進

新しく学んだことを書き留めていきます

複数ファイルに分けて実装したコードをkaggle notebookで実行するにはどうすればいいか問題

kaggleのnotebookはjupyter notebook形式で実行するか一つのscriptファイルを実行するかいずれかしかできないので、 開発環境でクラス毎に.pyファイルを分けて実装している場合、notebookでどう実行するかが問題になる。

一番良いのは恐らく自分が書いたコードをpackageにして、tar.gzファイルにまとめ、それをkaggleにアップロードし、pip installして実行すること。 setup.pyを以下のように書いて python setup.py sdist を実行すると~.tar.gzファイルができる。

from setuptools import setup, find_packages

PACKAGE_NAME = 'data_science_bowl_2019'

setup(
    # metadata
    name=PACKAGE_NAME,
    version="1.0.0",

    # options
    packages=find_packages(),
    include_package_data=True,
    zip_safe=False,
    python_requires='>=3.6',
    install_requires=[]
)

.ymlなど.py以外でパッケージに含めたいファイルがある場合はMANIFEST.inを定義して以下のように書く。

recursive-include data_science_bowl_2019 *.yml

参考:

techblog.asahi-net.co.jp

qiita.com

flame-blaze.net