python项目的文件夹命名约定

2024-03-29 05:34:29 发布

您现在位置:Python中文网/ 问答频道 /正文

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

my-great-python-project
my_great_python_project 
myGreatPythonProject 
MyGreatPythonProject

我发现在github里混在一起了。 感谢你的专家意见。


Tags: 项目githubproject文件夹名称my命名社区
2条回答

Python packages should also have short, all-lowercase names, although the use of underscores is discouraged. Pep 8 Style Guide

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

有三个惯例,你可能会觉得很困惑。

  1. 标准

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

Modules should have short, all-lowercase names. Underscores can be used in the module name if it improves readability. Python packages should also have short, all-lowercase names, although the use of underscores is discouraged.

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

即使是在PEP8中,许多包使用下划线,社区并不认为这是一个糟糕的做法。所以你会看到很多名字,比如sqlalchemy_searchable,等等

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

所以你通常会在文件夹中使用所有带下划线的小写名称。

  1. pypi上的包命名

安装包时包的名称不需要与在pypi上发布包的名称相匹配(用于pip安装的源)。pypi上的包通常使用连字符而不是下划线命名。 e、 g.flask-cors,安装程序包flask_cors

但是,您会注意到,如果您继续这个示例,那么flask-cors's GitHub repo定义了flask_cors/目录中的包代码。这是常态。

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


免责声明:我不拥有或维护sqlalchemy-searchableflask-cors,但在编写时,它们是名称中带有下划线的包的好例子。

相关问题 更多 >