小编Hon*_*nza的帖子

如何正确地将数据文件夹包含到python包中

我正在构建一个小型 python 包,将其部署到我们的内部 pypi 服务器,以便可以使用pip. 我正在使用setup.py构建 tar.gz 存档来上传到那里。\n并且我需要包含一些附加数据 - 更具体地说,我nltk在我的项目中使用,并且我想发送包含已下载的特定数据的包nltk,因为它让使用我的包的人负责自己下载它对我来说没有意义。所以我有以下结构

\n
\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 setup.py\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 src\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 my_pkg\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 my_module.py\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 resources\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0     \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 nltk_data\n|   |           \xe2\x94\x94\xe2\x94\x80... too many subfolders and files\n\n
Run Code Online (Sandbox Code Playgroud)\n

我想nltk_data在安装包后将整个子文件夹包含在同一位置。我设法处理package_data={'my_pkg' :['./resources/file.dat']},一个文件,但我不知道如何处理具有许多子文件夹、子子文件夹、不同扩展名的文件等的复杂目录结构。有什么方法可以做到这一点吗?

\n

我的 setup.py 非常简单(为了简单起见,我省略了描述或 URL 等内容)

\n
from setuptools import setup, find_packages\n\nsetup(\n    name='some-cool-name',\n    version="1.0.0",\n    classifiers=[],\n    \n    packages=find_packages(where='src'),\n    package_dir={'': 'src'},\n    package_data={'my_pkg' :[]},\n    include_package_data=True,\n    py_modules=[],\n\n    python_requires='>=3.8',\n    install_requires=['nltk==3.6.5']\n)\n\n
Run Code Online (Sandbox Code Playgroud)\n

python pip

1
推荐指数
1
解决办法
2855
查看次数

标签 统计

pip ×1

python ×1