python项目的文件夹命名约定

Cog*_*bot 15 python naming conventions

python社区中用于设置项目文件夹和子文件夹名称的命名约定是什么?

my-great-python-project
my_great_python_project 
myGreatPythonProject 
MyGreatPythonProject
Run Code Online (Sandbox Code Playgroud)

我发现在github中混淆了。感谢您的专家意见。

sir*_*sen 13

共有三种约定,您可能会感到困惑。

  1. 标准

PEP8定义了如何命名包和模块的标准:

模块应使用简短的全小写名称。如果模块名称可以提高可读性,则可以在模块名称中使用下划线。尽管不鼓励使用下划线,但Python软件包也应使用短的全小写名称。

  1. 实际上,没有人关心关于不使用下划线的建议

即使在PEP8中,许多软件包也使用下划线,并且社区并不认为这是不良做法。因此,您会看到许多名称,例如sqlalchemy_searchable,等等。

尽管您可以使用与软件包名称不匹配的名称创建一个文件夹,但是这样做通常是一个坏主意,因为这会使情况更加混乱。

因此,您通常在文件夹中使用带小写的全小写名称。

  1. 在pypi上命名包

安装时,软件包的名称不需要与在pypi(pip安装源)上发布的名称相匹配。上的软件包pypi通常以连字符而不是下划线命名。例如flask-cors,它安装软件包flask_cors

但是,您会注意到,如果您继续执行本示例,则flask-cors的GitHub存储库将在flask_cors/目录中定义程序包代码。这是常态。

但是,这有点混乱,因为pip软件包安装不区分大小写,并且等效地对待下划线和连字符。因此Flask-CorsfLASK_cOrs等等都是“等价的”。就个人而言,我不喜欢这样玩游戏-我建议仅在pypi上用连字符将小写字母命名为包,这是大多数人所做的。


免责声明:我不拥有或维护sqlalchemy-searchableor flask-cors,但在撰写本文时,它们是名称中带有下划线的软件包的很好示例。

  • “项目”不是 python 中的特定技术术语,但“包”是。根据我的经验,人们可能会说“project”来指代Python代码,加上它支持setup.py(或pyproject.toml或Pipfile)、自述文件和文档、变更日志、许可证等。任何带有`__init__的目录。 py` 文件是一个有效的包,通常每个项目会有 1 或 2 个:正在开发的代码和测试。测试可以是其测试内容的单独包或子包——两种结构都是有效的并且具有不同的权衡。 (3认同)
  • 是的,这绝对比我以前的评论更准确。在运行时,在Python解释器中,不存在“项目”这样的东西,但有“包”这样的东西。但如果您想与 PyPI API 交互,“项目”是一个重要/有意义的词。 (2认同)

Ben*_*ari 8

altimeter-valport-lcm下面是我们如何组织一个名为其中包含包的存储库的示例altimeter_valeport_lcm。该软件包包含模块altimeter_valeport_lcm.parser

\n
altimeter-valeport-lcm/\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 altimeter_valeport_lcm\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __main__.py\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 parser.py\n\xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 snake_case.py\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 README.rst\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 setup.py\n
Run Code Online (Sandbox Code Playgroud)\n
\n

[笔记]:

\n
    \n
  • 全部小写用于选择包名称。
  • \n
  • 存储库应使用与包相同的名称,只不过存储库用破折号 (-) 代替下划线 (_)。
  • \n
\n

阅读更多。

\n


tcr*_*ius 1

Python 包也应该有短的、全小写的名称,尽管不鼓励使用下划线。Pep 8 风格指南

这是对包的建议,它是包含模块的主文件夹,用于测试、设置和脚本文件、*.py 和 __init__.py。因此,我假设该文件夹是包,因此应该全部小写,没有下划线(请参阅链接Some Package Github)。