首页 > 解决方案 > 如何在 pip(pypi) 模块中包含 txt 文件

问题描述

我创建了一个 pip 模块并将该模块安装在 jupyter notebook 中。

由于以下原因,有一个功能无法正常工作。

我创建了一个 pip 模块,在这个模块中我还有一个文本文件,其中包含工具箱所需的一些信息。

但是当我创建pypi模块时,这个txt文件没有转换成python轮子,现在安装这个txt文件后找不到。

有没有办法在这个模块中包含一个 txt 文件,或者我需要把这个 txt 文件转换成另一种格式(.csv?)。

标签: pythonmodulepippypi

解决方案


您可能正在调用setuptools.setup您的setup.py文件来打包您的代码。设置决定哪些文件包含在轮子中的逻辑虽然它大部分是开箱即用的,但有点复杂

.csv在您的情况下,将您的文件路径添加到package_data-list就足够了:

from setuptools import setup

setup(
    ...                                      # "name" and stuff
    packages=['mypkg'],                      # root folder of your package
    package_dir={'mypkg': 'src/mypkg'},      # directory which contains the python code
    package_data={'mypkg': ['data/*.csv']},  # directory which contains your csvs
)

关于使用MANIFEST,而不是package_data文档页面所讨论的论点,因为您使用wheel构建包应该没问题。wheel默认情况下使用 bdist,它适用于package_data.


推荐阅读