【发布时间】:2023-07-03 19:11:02
【问题描述】:
我有一个 python 包,它在data 文件夹中有几个数据文件,使用包时必须读取这些文件;这些不是 python 脚本。但是,当我安装我的包以使用python setup.py install --user 对其进行测试时,只安装了一个~/.local/lib/python2.7/site-package/mypackage-1.0.0-py2.7.egg,因此代码无法读取data 目录。
我看到像numpy 这样的其他软件包安装了*.dist-info 和numpy 文件夹。
如何让我的包安装成这样?
【问题讨论】:
-
子文件夹不是直接安装而是需要像
import mypackage.data.whatever那样导入的吗?这里有一个关于这个*.com/questions/8953844/…的问题或者你可以参考module documentation -
这与“如何让我的包安装成那样?”无关。如果我只想使用您描述的方法,
MANIFEST.in或setuptools.setup中的include_package_data有什么意义? -
据我了解,
include_package_data旨在用于非 python 文件,如自述文件、文档、原始数据、图像等。这至少是我从 python-packaging docs 得到的。 -
没错。我什么时候说我想执行一个脚本?为了清楚起见,我会更新我的问题。
-
好吧,那是一个缺失的信息,也许是我的错误。无论如何,您是否尝试使用
MANIFEST.in,在其中指定您的数据文件,例如include data/*.*,最后在setuptools 中指定include_package_data=True? “因此代码无法读取数据目录”实际上是什么意思?为什么它不应该读取数据目录?这不是取决于代码而不是安装吗?
标签: python package installation setup.py sdist