首先
python project
,我想随软件包一起发送一个数据文件。
下列的
various
(and partially contradictory)
advice on the mess that is Python package data
,我最终尝试了不同的东西,并通过以下设置使其在我的机器上本地工作。
我的
setup.cfg
包含了其他不重要的东西,
[options]
include_package_data = True
没有
package_data
或其他与数据相关的密钥。我的
MANIFEST.in
州
recursive-include lexedata clics3-network.gml.zip
我的
setup.py
从本质上说,它是相当裸露的
from setuptools import setup
readline = "readline"
setup(extras_require={"formatguesser": [readline]})
要加载文件,我使用
pkg_resources.resource_stream("lexedata", "data/clics3-network.gml.zip")
我用配置了
[tox]
isolated_build = True
envlist = general
[testenv]
passenv = CI
deps =
codecov
pytest
pytest-cov
commands =
pytest --doctest-modules --cov=lexedata {envsitepackagesdir}/lexedata
pytest --cov=lexedata --cov-append test/
codecov
在我的本地机器上,当我运行
pip install .
,数据文件
lexedata/data/clics2-network.gml.zip
正确地存放在
site-packages/lexeadata/data
相应虚拟环境的目录,以及
tox
把它装进去
.tox/dist/lexedata-1.0.0b3.tar.gz
以及它的venv站点包目录
.tox/general/lib/python3.8/site-packages/lexedata/data/
.
然而,在我测试的所有Python 3版本上,使用Github操作的持续集成都失败了
UNEXPECTED EXCEPTION: FileNotFoundError(2, 'No such file or directory')
FileNotFoundError: [Errno 2] No such file or directory: '/home/runner/work/lexedata/lexedata/.tox/general/lib/python3.10/site-packages/lexedata/data/clics3-network.gml.zip'
在相同的毒株静脉途径上。
这里会出什么问题?