'Directory' 和 'Python Package' 在 PyCharm 中的区别

Difference between 'Directory' and 'Python Package' in PyCharm

  1. 什么时候使用目录而不是 Python 包? PS: 我知道我可以从后者导入但不能从前者导入。如果是这样,为什么不将所有内容创建为 Python 包?
  2. 此外,PyCharm 是否根据名称将位置标记为一个或另一个?这种行为背后的模式是什么? 例如,我创建了一个目录并将其命名为'lambda'。但是当我将它重命名为 'lambdas' 时,pycharm 自动将其更改为 Python 包(带点符号的公文包)。 Python关键字?

When to use Directory over Python Package?

你可以使用 "Python Package" 当你想把一些应该是可导入的模块放在那里。 PyCharm 将自动为目录创建一个 __init__.py

Why not create everything as a Python Package?

并非项目中的每个子目录都必须是一个包。例如 docstests 通常只是目录。

Does PyCharm mark a location as one or the other based on its name?

PyCharm 如果子目录名称 is a valid identifier and not a keyword, regardless of whether the subdirectory is a package or not. This is possibly because, in Python 3.3+, subdirs are also implicit namespace packages 似乎用点标记图标(即使没有 __init__.py 文件,它们仍然可以导入)。

如果您有一个与 Python 2.7 解释器关联的项目,除非添加 __init__.py 文件,否则您不会在图标上看到圆点,因为隐式命名空间包不是问题在 Python 2.