setup.py - 在 setuptools 中的包内添加数据文件

每个人!跳到我的问题,我在 Python 3.7 中有这个文件结构:


mypackage/

 |- config/

 |---- config.json

 |- mypackage/

 |---- __init__.py

 |---- main.py

 |- docs/

 |---- __init__.py

 |---- doc_folder/

 |--------- text_file.txt

 |- setup.py

 |- MANIFEST.in

我的 setup.py 正在使用 setuptools 并且具有相关性:


setup(

    name='mypackage',

    version='1.0',

    packages=find_packages(),

    include_package_data=True

)

我的 MANIFEST.in 有:


recursive-include config *

recursive-include docs *

当我运行pip install .或 时python setup.py sdist & pip install dist/mypackage-1.0,会发生同样的事情:

  • 构建发行版后,日志会显示 和docs,并被config复制到mypackage-1.0;

  • 安装后,我找不到config

  • 安装后,docs可在站点包文件夹 ( site-packages/docs) 中找到。

  • 如果我将 __init__.py 添加到config,它也会出现在 site-packages 文件夹中。我的目标是在目录中包含docs和,因为我担心如果我使用配置文件夹安装不同的项目,它们将相互覆盖。我认为进行相对导入也会更有用。configmypackage

你们有什么感想?


拉丁的传说
浏览 121回答 1
1回答

慕哥6287543

将config和docdirs移到mypackage(实际上是一个包,包含一个__init__.py)应该可以解决问题。问题中更改的目录结构:mypackage/├── mypackage/│   ├── __init__.py|   ├── config/|   |   └── config.json|   ├── docs/|   |   ├── __init__.py|   |   └── doc_folder/|   |       └── text_file.txt|   └── main.py├── setup.py└── MANIFEST.in
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python