使用setuptools和pip将根级数据文件安装到Python包中

问题描述

我的消息来源组织如下:

.
├── testpackage/
│   ├── __init__.py
│   └── foo.py
├── .env
├── MANIFEST.in
└── setup.py

我正在尝试将.env(文本文件)放入安装的软件包中,即site-packages/testpackage/.envpip install .

尝试的解决方法

我有一个setup.py,如下所示:

# setup.py

from setuptools import setup,find_packages

setup(
    name='testpackage',version='1.0.0',description='Install root level text file',packages=find_packages(),# Doesn't work obvIoUsly,since .env is a level above testpackage/__init__.py
    # package_data={'': ['.env']},#
    # Installs to /usr/local/.env instead
    # data_files=[('',['.env'])],#
    # Installs to site-packages/.env instead
    # package_data={'': ['../.env']},#
    include_package_data=True,)

我也有MANIFEST.in

# MANIFEST.in
include .env

我尝试复制this answer,但似乎不同之处在于pip不会拾取MANIFEST.in,而会忽略testpackage以外的所有内容

也许有某种方法可以强迫data_files而不是/usr/local/安装到软件包目录中?

作为最后的选择,我可以在.env运行时手动将testpackage符号链接setup.py中。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)