【问题标题】:Trouble including sub-directory files in site-packages在站点包中包含子目录文件时遇到问题
【发布时间】:2019-09-30 21:07:07
【问题描述】:

我有一个开发包设置如下:

\polygonselector
    \polygonselector
        __init__.py
        \notebooks
            PolygonSelector.ipynb
    .gitignore
    LICENSE
    MANIFEST.in
    README.md
    setup.py

我试图密切关注these instructions 以及this questionthis question 中的信息,以便将Jupyter 笔记本(在notebooks 目录内)文件作为python 包的一部分包含在内。但是,我一直没能成功。

MANIFEST.in 文件如下所示:

recursive-include  notebooks *

我的setup.py 文件中也有include_package_data=True 行。

这里是repository link;我已经做了十几个提交,试图让它工作,包括尝试将notebooks 目录放在目录结构的顶部。

但是无论我做什么,当我从存储库 pip install 时,notebooks 目录不包含在Lib\site-packages directory 中。

【问题讨论】:

  • 将此添加到清单文件recursive-include polygonselector/notebooks/* 从与manifest.in相同的目录级别开始
  • @pashantrana 我相信该结构已经被尝试作为之前的提交之一。不过我以后会试试的。
  • 您希望将子目录notebooks 安装在Lib\site-packages 还是Lib\site-packages\polygonselector 中?
  • @phd 我想知道如何实现这两个目标,但我想我更希望它在这个项目的 polygonselector
  • @RickTeachey 你可以试试recursive-include polygonselector/notebooks/*.* 而不是recursive-include polygonselector/notebooks/*

标签: python setuptools


【解决方案1】:

如果您想在Lib\site-packages 中安装子目录notebooks

更改MANIFEST.in

recursive-include notebooks *

更改setup.py

# include_package_data=True,
package_data={'polygonselector': ['../notebooks/*']},

安装到Lib\site-packages\polygonselector:

git mv notebooks polygonselector

更改MANIFEST.in

recursive-include polygonselector/notebooks *

setup.py这种情况没问题。

【讨论】:

  • 优秀。您能否解释或指出一个链接,讨论 MANIFEST.in 中 polygonselector/notebooks *polygonselector/notebooks/* 之间的区别?
  • 我一个都不认识。而且我不认为语法polygonselector/notebooks/* 是有效的。语法是recursive-include directory patterns
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-11-28
  • 2016-06-16
  • 1970-01-01
  • 1970-01-01
  • 2016-12-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多