プログラマ行進曲第二章

主にソフトウェア関連の技術をネタにした記事を執筆するためのブログ

コードからPythonパッケージ名を取得する方法が分からなかったので質問した話

この3連休でSphinxの開発合宿に参加しています。

sphinxjp.connpass.com

その時の作業で「Pythonパッケージ名を取得するコードの書き方」が分からなくなり、その場で質問した時に色々教えてもらったので、軽めにメモを取って記事にすることにしました。

一番素直に(愚直に?)やるのは、以下のように __file__ を利用する方法とのことでした。

# in <package>/__init__.py:

package_dir = os.path.abspath(os.path.dirname(__file__))

コードを見れば「ああ、そうですね。そう書けば取れそう」と分かるものですが、普段Pythonを書かなくなってしばらく経っていたこともあってか、どう書けばいいのか分からなくなっていたので助かりました。

この書き方を使って、以下PRの実装に役立てています。

github.com

ちょいテクとして記録を残しておいて、また忘れたときにブログから引っ張れるようにしておいて安心して忘れられるようにしたいと思います。

他にパッケージ名を取得するやり方としてsetuptoolsのpkg_resourcesを使うという方法もあると聞きました。ただ、こちらは詳しいやり方を聞いたわけではなく、詳しく調べる余裕も無いので、教えてもらったリンクだけ貼ってお茶を濁しておきます。

Package Discovery and Resource Access using pkg_resources — setuptools 40.6.3 documentation