【问题标题】:Module naming convention (avoid collisions)模块命名约定(避免冲突)
【发布时间】:2013-06-21 14:37:12
【问题描述】:

我正在学习 Python,并且已经创建了一些临时实用程序模块,可用于任何用途。我不打算将它们安装在任何地方,让它们简单地放置并在需要的地方复制它们现在对我来说是可以的。

所以我通常只是从同一目录中的脚本创建一个名为 mymodule.pyimport mymodule 的文件。对于名称,我只使用小写字母(即没有_s)。所以现在在我看到几个“真正的”Python 模块并意识到约定大体相同之后,我开始怀疑冲突

是否有命名自己的 ad-hoc 模块的约定,以避免与核心或“pip”模块(甚至是尚未添加的未来模块)发生冲突?

类似约定exists in Perl community(尤其是因为CPAN),所有此类模块都应以Local::开头,如Local::MyCrazyModule

注意:a similar question here on SO,但似乎并没有专门询问模块,而是询问与模块冲突的变量名。

【问题讨论】:

    标签: python module naming-conventions


    【解决方案1】:

    不与 pip 模块冲突的最简单方法是使用您的名称创建转储模块并将其发布到 pypi。然后,您可以将这个顶级命名空间用于所有模型,无论已发布或未发布。

    有关名称转换的更多信息,您可以阅读:http://www.python.org/dev/peps/pep-0423/

    【讨论】:

    • 虽然我同意这可能是最简单的解决方案,但我真的不喜欢每个人都用他们的名字污染 pypi 空间的想法(想想所有的johnsmith's)。这甚至允许 kn pypi 吗?
    • ..也就是说,如果在我看来我剥离了关于出版的部分,+1
    猜你喜欢
    • 2013-04-12
    • 1970-01-01
    • 2011-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-17
    相关资源
    最近更新 更多