python项目的文件夹命名约定

时间:2018-10-16 03:51:22

标签: python naming conventions

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

my-great-python-project
my_great_python_project 
myGreatPythonProject 
MyGreatPythonProject

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

3 个答案:

答案 0 :(得分:7)

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

  1. 标准

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

  

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

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

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

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

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

  1. 在pypi上命名包

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

但是,您会注意到,如果继续执行此示例,则flask-cors's GitHub repoflask_cors/目录中定义了程序包代码。这是常态。

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


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

答案 1 :(得分:2)

这里是一个示例,说明了如何组织一个名为altimeter-valport-lcm的存储库,其中包含软件包altimeter_valeport_lcm。该软件包包含模块altimeter_valeport_lcm.parser

altimeter-valeport-lcm/
├── altimeter_valeport_lcm
│   ├── parser.py
│   ├── __init__.py
│   └── __main__.py
├── README.rst
└── setup.py

[注意]:

  • 用于选择软件包名称的所有小写字母。
  • 存储库应该使用与软件包相同的名称,除了它们用下划线(_)代替下划线(_)之外。

Read More.

答案 2 :(得分:0)

  

Python软件包还应该使用短的全小写名称,尽管不鼓励使用下划线。 Pep 8 Style Guide

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