Я написал модуль Python на С++ и построил его как общую библиотеку объектов, и он отлично работал. Но, вычисляя все это, я заметил (через strace), что Python ищет несколько различных вариаций import
. В частности, когда я говорю import foo
, Python ищет, чтобы:
- foo (каталог)
- foo.so
- foomodule.so
- foo.py
- foo.pyc
Все это было вполне понятно, кроме foomodule.so. Почему Python ищет все как имя .so и namemodule.so? Это какой-то исторический артефакт? Я довольно много искал и вообще не приводил объяснений, и мне было интересно узнать, должен ли я назвать свой модуль foomodule.so вместо foo.so. Кажется, у моей системы есть некоторые существующие модули Python после каждого соглашения, поэтому я не могу не задаться вопросом, подразумевают ли что-то разные имена.