我已经创建了一个Python包,它在Azure包注册表上发布为一个轮子。由于某些原因,pip在部署到Azure Ubuntu Debian 11机器时只会找到旧版本的软件包,而所有版本都可以从我的本地工作站(也是Ubuntu)找到并正确安装。从干净的虚拟环境开始,这是观察到的行为:
本地工作站:
bash% pip index versions sonair_dev
WARNING: pip index is currently an experimental command. It may be removed/changed in a future release without prior warning.
sonair_dev (0.0.14)
Available versions: 0.0.14, 0.0.13, 0.0.12, 0.0.11, 0.0.10, 0.0.9, 0.0.8, 0.0.7, 0.0.6, 0.0.5, 0.0.4, 0.0.3, 0.0.2, 0.0.1
INSTALLED: 0.0.15.dev8
LATEST: 0.0.14
字符串
在Azure上:
bash% pip index versions sonair_dev
WARNING: pip index is currently an experimental command. It may be removed/changed in a future release without prior warning.
sonair_dev (0.0.9)
Available versions: 0.0.9, 0.0.8, 0.0.7, 0.0.6, 0.0.5, 0.0.4, 0.0.3, 0.0.2, 0.0.1
INSTALLED: 0.0.4
LATEST: 0.0.9
型
例如,只有一部分版本在Azure客户端中可见;此外,在Azure上,pip坚持安装0.0.4版本-即使我特别要求sonair_dev==0.0.9
,据称它可以看到。Azure上的pip install sonair_dev
的输出如下所示:
Collecting sonair_dev
Downloading https://XXX/sonair-dev/0.0.9/sonair_dev-0.0.9-py3-none-any.whl (22 kB)
Downloading https://XXX/sonair-dev/0.0.8/sonair_dev-0.0.8-py3-none-any.whl (22 kB)
Downloading https://XXX/sonair-dev/0.0.7/sonair_dev-0.0.7-py3-none-any.whl (22 kB)
Downloading https://XXX/sonair-dev/0.0.6/sonair_dev-0.0.6-py3-none-any.whl (22 kB)
Downloading https://XXX/sonair-dev/0.0.5/sonair_dev-0.0.5-py3-none-any.whl (22 kB)
Downloading https://XXX/sonair-dev/0.0.4/sonair_dev-0.0.4-py3-none-any.whl (22 kB)
型
并且最终安装了0.0.4
版本。
从0.0.9版本到0.0.10版本,包从纯Python包变为包含二进制rust模块的包;可能相关的信息吗
关于如何修复/调试此问题有任何提示吗?
1条答案
按热度按时间jv2fixgn1#
本人回答:
pip
选项--log=path_to_logfile.txt
被证明是非常有用的--这个日志输出显示pip
确实考虑了我的包的所有版本,但是在Azure上,所有嵌入了Rust库的版本的日志显示:Skipping link: none of the wheel's tags (xxx-yyy-zzz) are compatible
个1.我在Ubuntu上创建的包有标签规范:
cp310-cp310-manylinux_2_34_x86_64
个1.使用命令
pip debug --verbose
列出了所有允许的标记-在Azure WM上,最新的manylinux平台是:manylinux_2_31_x86_64
-即这个包是为比我的Azure WM上运行的更新的manylinux/glibc版本构建的。我现在也在Ubuntu 20.04上创建了这个软件包--这解决了这个问题。