我有一套套件,这些套件是一起开发并捆绑到一个分发套件中的。
为了争辩,让我们假设我有充分的理由以如下方式组织我的python分发软件包:
SpanishInqProject/
|---SpanishInq/
| |- weapons/
| | |- __init__.py
| | |- fear.py
| | |- surprise.py
| |- expectations/
| | |- __init__.py
| | |- noone.py
| |- characters/
| |- __init__.py
| |- biggles.py
| |- cardinal.py
|- tests/
|- setup.py
|- spanish_inq.pth
我已经添加了路径配置文件spanish_inq.pth
,将SpanishInq
添加到sys.path
,所以我可以直接导入weapons
、. etc。
我希望能够使用setuptools来制作轮子并在weapons
目录中进行expectations
,characters
和SpanishInq
pip安装,但是没有< / em>将SpanishInq
设置为包或名称空间。
我的setup.py:
from setuptools import setup, find_packages
setup(
name='spanish_inq',
packages=find_packages(),
include_package_data=True,
)
带有MANIFEST.in
文件,其中包含:
spanish_inq.pth
这在很多方面都具有挑战性:
pip install
已将weapons
等直接放置在site-packages
目录中,而不是放置在SpanishInq
目录中。spanish_inq.pth
文件最终出现在sys.exec_prefix目录中,而不是在我的站点软件包目录中,这意味着该文件中的相对路径现在无用了。我能够通过将SpanishInq转换为模块来解决第一个问题(对此我不满意),但是我仍然希望能够将weapons
等导入而无需使用SpanishInq作为命名空间,并且为此,我需要在sys.path中添加SpanishInq,这是我希望.pth
文件可以提供帮助的地方...但是我无法将其放到应该去的地方。
所以...
如何获取.pth
文件以安装到site-packages
目录中?