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

时间:2018-11-21 15:03:51

标签: python setuptools

有时候,当我安装软件包时,我会注意到在site-packages目录中已经创建了一个.pth文件,它与软件包代码处于同一级别。例如,如果我做

pip install DjangoDevKit

我可以在site-packages目录中看到:

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文件。我搜索了代码,但没有发现明显的问题。

你有个主意吗?

1 个答案:

答案 0 :(得分:2)

DjangoDevKit是a namespace package。这就是setuptools创建*_nspkg.pth的原因。

请参见https://stackoverflow.com/search?q=%5Bpython%5D+namespace+package

相关问题