为什么在安装包时有时会创建 .pth 文件?

Why a .pth file is created sometime on package installation?

有时,当我安装一个包时,我会注意到在 site-packages 目录中创建了一个与包代码相同级别的 .pth 文件。例如,如果我执行

pip install DjangoDevKit

我可以在站点包目录中看到:

djangodevkit                        (a directory)
DjangoDevKit-1.0.7.dist-info        (a directory)
DjangoDevKit-1.0.7-py3.5-nspkg.pth

.pth 文件包含:

import sys, types, os;p = os.path.join(sys._getframe(1).f_locals['sitedir'], *('djangodevkit',));ie = os.path.exists(os.path.join(p,'__init__.py'));m = not ie and sys.modules.setdefault('djangodevkit', types.ModuleType('djangodevkit'));mp = (m or []) and m.__dict__.setdefault('__path__',[]);(p not in mp) and mp.append(p)

这个 DjangoDevKit-1.0.7-py3.5-nspkg.pth 是如何创建的? setup.py 并没有告诉创建这样一个 .pth 文件。我搜索了代码,但没有明显的内容。

你有想法吗?

DjangoDevKit 是 a namespace package. That's why setuptools created *_nspkg.pth

https://whosebug.com/search?q=%5Bpython%5D+namespace+package