包中Python目录的典型命名约定

包中Python目录的典型命名约定,python,directory,naming-conventions,Python,Directory,Naming Conventions,问题 我想知道对于计划作为模块导入的Python目录的命名是否有一个标准约定。这意味着目录包含一个空白的\uuuuu init\uuuuuu.py 背景 直到最近,我还很少考虑它,仅根据在文件系统级别上有意义的内容来命名它。让我陷入困境的是,在文件系统级别有意义的东西对其他开发人员的独立模块也有意义。考虑以下目录: + drivers + prologix - __init__.py - driver_a.py - driver_b.p

问题
我想知道对于计划作为模块导入的Python目录的命名是否有一个标准约定。这意味着目录包含一个空白的
\uuuuu init\uuuuuu.py

背景
直到最近,我还很少考虑它,仅根据在文件系统级别上有意义的内容来命名它。让我陷入困境的是,在文件系统级别有意义的东西对其他开发人员的独立模块也有意义。考虑以下目录:

+ drivers
    + prologix  
        - __init__.py
        - driver_a.py
        - driver_b.py
    + visa
        - __init__.py  
        - driver_a.py
        - driver_b.py
    __init__.py
    ringout.py <-- simple file to ring-out the drivers  
vs


是否有更好的方法处理此问题?

每个模块的名称空间都是唯一的,因此,即使您有两个名为
visa
的模块,只要您避免将它们以相同的名称导入同一名称空间,也不会有任何问题。我倾向于绝对进口:

import drivers.visa
import pyVisa.visa
或者您也可以使用
作为

from drivers import visa
from pyVisa import visa as pyvisa

……等等。只是要小心你如何导入东西。作为最终用户,我更希望您在软件包中以逻辑方式构建模块,而不必为我担心预先损坏它们。

要添加到这一点,请参阅和。+1对于绝对导入,我并没有真正考虑到这一点。这将显示我对Python的一些新鲜感,但是内置模块呢?是否有类似的方式以相同的方式导入它们?以数学为例(我能想到的一个更通用的例子)。确保可以在标准库上使用相同的导入技巧。在用例中,从X导入数学。什么是‘X’?:)PYTHONPATH上可用的软件包或模块名为
X
。如果您的命名空间中还没有
数学
,那么就不会有任何问题。下面是另一篇要查看的文章:
import drivers.visa
import pyVisa.visa
from drivers import visa
from pyVisa import visa as pyvisa