Python包装与.pth文件

时间:2018-06-25 22:51:53

标签: python python-2.7 setuptools python-packaging pth

我有一套套件,这些套件是一起开发并捆绑到一个分发套件中的。

为了争辩,让我们假设我有充分的理由以如下方式组织我的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目录中进行expectationscharactersSpanishInq 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目录中?

0 个答案:

没有答案