有时候,当我安装软件包时,我会注意到在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文件。我搜索了代码,但没有发现明显的问题。
你有个主意吗?
答案 0 :(得分:2)
DjangoDevKit是a namespace package。这就是setuptools
创建*_nspkg.pth
的原因。
请参见https://stackoverflow.com/search?q=%5Bpython%5D+namespace+package