0

https://github.com/rtfd/readthedocs.org/tree/master/readthedocs/settings

我从https://code.djangoproject.com/wiki/SplitSettings到达上面的链接。

有人可以解释该特定配置是如何工作的吗?settings/__init__.py特别是,仅包含特定设置文件(在本例中为 postgres.py)的名称所发挥的作用。我试图对我的项目这样做,而 django 抱怨找不到合适的模块,那么它对 readthedocs 是如何工作的?

4

2 回答 2

2

他们的所作所为实际上很糟糕。__init__py在这种情况下是一个符号链接到postres.py. 当您在 github 上打开它时,它只会显示它指向的文件,因为这是强制显示时符号链接的外观。这与只是自己创建文件并添加带有文件名的行不同。

但是,实际提交符号链接并不好,因为它们不适用于所有操作系统。此外,这里的重点是允许您在 postgres 或 sqlite3 设置之间切换,但是如果您删除__init__.py并创建一个新的符号链接,sqlite.py您实际上已经更改了源代码(因为它已提交),并且您不会无法在不恢复到原始postgres.py符号链接的情况下提取新更改。

但是,__init__.py必须在那里,否则 Python 不会将其识别为模块。他们应该做的是:

# __init__.py

from local import *

并且,然后创建一个符号链接到他们想要在local.py. 那么,该文件不会被提交,也没有问题。

于 2012-07-06T15:30:41.650 回答
0

在这种情况下,settings/__init__.py它不是一个有效的 Python 模块,因此很明显它是一个指向settings/postgres.py.

wrt/__init__.py文件,它们是 Python 用来将文件夹视为 Python 包的标记(参见http://docs.python.org/tutorial/modules.html#packages)。该__init__.py文件是在您导入时导入import mypackage的,就像它是一个模块一样。

于 2012-07-06T11:08:13.930 回答