繁体   English   中英

Python 应用程序在 Raspbian Bullseye 上不起作用

[英]Debian package of Python Application not working on Raspbian Bullseye

我使用 dh-virtualenv 构建了我的 Python 3 应用程序的 debian package。 在 Raspbian Buster 上一切正常,但最近发布的 Bullseye 我希望 package 兼容。

可悲的是,当我在 Bullseye 下安装.deb 时,我所有的自定义 Python 包都丢失了。 运行应用程序会引发 ModuleNotFoundError。 我意识到 sys.path 列表不包含 virtualenv 的站点包的路径(它在 Buster 下),所以我手动添加了它。 这修复了大多数 Python 包的 ModuleNotFoundError。 然而,我的应用程序也依赖于一些 CPython 包,而所有这些包仍然缺失。

运行path/to/virtualenv/bin/pip3 list显示它们尚未安装,尽管我在站点包下找到了所有正确的.so 和 .dist-info 文件。 在 Buster 下,相同的命令按预期列出了所有扩展。

我的猜测是这个问题是由使用不同的 Python 版本引起的。 Buster 使用 3.7,Bullseye 使用 3.9。 你有什么想法可能导致这个问题以及我该如何解决它?

非常感谢内森

我找到了问题的核心。
Bullseye 正在使用 python 3.9 而不是破坏者 python 3.7。
所以 sys.path 默认不包含正确的路径。

现在我通过在我的 Buster 构建机器上安装 python 3.9 并告诉 /debian/rules 文件使用 python 3.9 来解决这个问题。
然后我手动 append 正确的路径。

sys.path.append('/path/to/debian-package/lib/python3.9/site-packages')

Bullseye和Buster也使用不同版本的libffi (国外function接口)。
因此,由于 CPython 包依赖于 libffi,因此它们无法正确安装。
我通过在 Buster 上安装 libffi 7 来解决这个问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM