> If you upgrade from bullseye to bookworm, your python3 is upgraded from
> 3.9 to 3.11. These are incompatible versions, and install libraries to
> different paths (when you use pip3).
> Anything installed with pip on 3.9 will not be importable in 3.11.

Thanks for the explanation. That explains bug ① (“an app module was
dropped/lost”). Apparently that bug cannot realistically be remedied,
although perhaps the release notes should cover this topic.

I’m a bit confused because “pip3 list” shows a list of 146 packages,
but not argostranslation. Why did all those other packages survive the
upgrade?  I wonder if some of them are somehow managed by apt.

There are still 3 other bugs.

> So, I'm afraid you're well out of the supported area of pip.
> Sorry.

Is it necessary for aptitude full-upgrade to withhold information from
the user about package destruction or removal?  Ideally users would
get a loud warning when actions are taken that are expected to impact
an installed package. If it’s a mission critical tool, users need to
be able to back out of the upgrade and assess the consequences.

I would also like to mention a fifth defect I just discovered:

⑤ argostranslate was only /partially/ removed.

There are some big language files that were originally installed by
argostranslate. The argostranslate executable survived the upgrade but
not some of the modules it relies on, leaving it in a broken partially
existent state with no information given to the user. The language
packs remained in tact. I don’t know where on the filesystem they
live, but when I installed argostranslate again the previous language
packs were found and automatically available for use.

In my case, this happened to be a benefit as it saved me from the
effort of refetching the language files. But it’s probably not an
favorable general behavior for packages to be partially
removed. Ideally the user should receive a warning about pending
removal and an option for a clean removal or a partial removal.

The pip package manager has an uninstall procedure and since pip is
the manager of the argostranslate package, users rely on it to keep
track of the objects associated to the application.

> Can I suggest using pipx for installing applications instead? It
> actually understands this problem and has a "reinstall-all" feature to
> help you recover from Python minor-version upgrades.

I really appreciate the suggestion. I gave it a try. It had several
issues, but it could very well turn out to be the lesser of
evils. After several hurdles pipx was able to install argostranslate
in the end.

Reply via email to