<p>这只是一个猜测,但我只能假设这与下面的有关,来自<a href="http://docs.python.org/extending/extending.html#extending-python-with-c-or-c" rel="nofollow noreferrer">Extending Python with C or C++</a>。在</p>
<blockquote>
<p>Begin by creating a file spammodule.c. (Historically, if a module is called spam, the C file containing its implementation is called spammodule.c; if the module name is very long, like spammify, the module name can be just spammify.c.)</p>
</blockquote>
<p>我想这个约定扩展到<code>.so</code>文件的名称。这一推测得到<a href="http://docs.python.org/extending/extending.html#compilation-and-linkage" rel="nofollow noreferrer">the same</a>第1.5节的进一步支持。在</p>
<hr/>
<p>基于Wladimir的<a href="https://stackoverflow.com/questions/6319379/python-shared-object-module-naming-convention/6531558#6531558">excellent discovery</a>,我找到了<a href="http://hg.python.org/cpython-fullhistory/rev/e149c77d173c?revcount=1280" rel="nofollow noreferrer">first reference</a>到{<cd2>}作为后缀。它来自于一个支持SunOS库动态加载的补丁,来自“Bill”。(<a href="http://www.python.org/search/hypermail/python-1994q3/0082.html" rel="nofollow noreferrer">Bill Jansson?</a>)显然,<code>module</code>-as后缀约定是在使用<code>.so</code>共享库之前开始的,当{<cd1>}库被采用时,该约定被简单地维护了。在</p>
<p>我认为Wladimir是对的,尽管有趣的变化是采用了短模块名约定。这证实了我的猜测,长模块名是早期的约定。在</p>