カラクリスタ

Pythonではライブラリのディレクトリと同じファイル名のファイルは無視される(?)

概要: Python のライブラリの import ではまったときのメモ


どういうことか

例えばこういうディレクトリ構造があったとする

~/dev/{project}/
{appname}/
__init__.py
library.py
library/
__init__.py
childlib.py

このディレクトリ構成で、{appname}/library.pyを読み込みたいとしても、 どうも{appname}/library/__init__.pyが読み込まれるっぽいので、 {appname}/library.pyは読めないっぽいです。

ちなみに Perl だと

~/dev/{project}
{appname}/
Library.pm
Libary/
ChildLib.pm

という感じの構成になりますが、こっちだと問題なく読めたりする

まあこの仕様(?)に今日一日中はまってました。

感想

Perl で動くんだから、Python でも似たようなもんだろうと思ってたら、 全然違ったという。まあ分からないこと解決したんで、なんとかなりそうです。

あれだ、Python って Perl 使いにとっては異文化そのものだよ!(他の言語でも一緒かな)

#FIXME