上传的pypi包在安装时缺少模块。

问题描述 投票:0回答:1

我创建了一个python包,想把它发布到pypi上 ( https:/pypi.orgprojectcatapi.py)。 ). 我最初的v0.1.1上传工作没有问题。我决定添加一个子目录来存储抽象类,因为有很多代码重复使用。上传到pypi并安装后,我得到的消息是abc模块不存在。

我做了一些研究,发现我必须在MANIFEST.in文件中包含子目录,所以我做了。当上传并再次尝试安装时,我得到了同样的错误。我直接下载了软件包并解压文件,发现abc目录确实存在。接下来我检查了catapi的site-packages版本,却发现它没有abc模块。

有谁遇到过这种情况,知道怎么解决吗?下面是一个脚本来展示这个问题

# make a temp dir to hold this in
mkdir catapi
cd catapi

# Prepare python venv
python -m venv env-catapi
source env-catapi/bin/activate
pip install catapi.py==0.3.4

# Download file for comparison
wget https://files.pythonhosted.org/packages/ac/ee/044c1cc53e7c994fe4a7d57362651da8adff54eb34680c66f62a1d4fb57d/catapi.py-0.3.4.tar.gz
tar -xvf catapi.py-0.3.4.tar.gz
diff catapi.py-0.3.4/catapi env-catapi/lib/python3.8/site-packages/catapi
deactivate
cd ../

# Prints out
# Only in catapi: abc
# Only in env-catapi/lib/python3.8/site-packages/catapi: __pycache__
python-3.x pypi
1个回答
0
投票

有必要将子目录添加到以下目录中

packages=['package1', 'package2', 'etc']

setup.py的一部分。在我的例子中,我必须添加abc目录,以便将其放置在catapi安装中。

packages=['catapi', 'catapi.abc'],
© www.soinside.com 2019 - 2024. All rights reserved.