Pixi timeout at launch

Hi, can we maybe try the Pixi setup steps during launch fewer times? Currently, it’s not working for me, which isn’t necessarily the end of the world, but each failed attempt takes a good 5 seconds and Avogadro seems to attempt it 12 times, meaning launch takes a whole minute :frowning:

The error I’m getting is the following, by the way:

"/app/bin/obabel"  found:  "/app/bin/obabel: Open Babel 3.1.1 -- Nov 11 2011 -- 11:11:11"
Using manifest in "/home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro"
QProcess: Destroyed while process ("/app/bin/pixi") is still running.
Using manifest in "/home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro"
QProcess: Destroyed while process ("/app/bin/pixi") is still running.
Using manifest in "/home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro"
QProcess: Destroyed while process ("/app/bin/pixi") is still running.
Using manifest in "/home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro"
QProcess: Destroyed while process ("/app/bin/pixi") is still running.
Using manifest in "/home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro"
QProcess: Destroyed while process ("/app/bin/pixi") is still running.
Using manifest in "/home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro"
QProcess: Destroyed while process ("/app/bin/pixi") is still running.
Using manifest in "/home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro"
QProcess: Destroyed while process ("/app/bin/pixi") is still running.
Using manifest in "/home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro"
QProcess: Destroyed while process ("/app/bin/pixi") is still running.
Using manifest in "/home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro"
QProcess: Destroyed while process ("/app/bin/pixi") is still running.
Using manifest in "/home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro"
QProcess: Destroyed while process ("/app/bin/pixi") is still running.
Using manifest in "/home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro"
QProcess: Destroyed while process ("/app/bin/pixi") is still running.
Using manifest in "/home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro"
QProcess: Destroyed while process ("/app/bin/pixi") is still running.
qt.network.http2: stream 1 error: "Connection closed"
qt.network.http2: stream 1 finished with error: "HTTP/2 protocol error"

The AppImage does something similar, but it prints:

QProcess: Destroyed while process ("/home/matt/.local/bin/pixi") is still running.
QProcess: Destroyed while process ("/home/matt/.local/bin/pixi") is still running.
QProcess: Destroyed while process ("/home/matt/.local/bin/pixi") is still running.
QProcess: Destroyed while process ("/home/matt/.local/bin/pixi") is still running.
QProcess: Destroyed while process ("/home/matt/.local/bin/pixi") is still running.
QProcess: Destroyed while process ("/home/matt/.local/bin/pixi") is still running.
QProcess: Destroyed while process ("/home/matt/.local/bin/pixi") is still running.
QProcess: Destroyed while process ("/home/matt/.local/bin/pixi") is still running.
QProcess: Destroyed while process ("/home/matt/.local/bin/pixi") is still running.
QProcess: Destroyed while process ("/home/matt/.local/bin/pixi") is still running.
QProcess: Destroyed while process ("/home/matt/.local/bin/pixi") is still running.
QProcess: Destroyed while process ("/home/matt/.local/bin/pixi") is still running.
QProcess: Destroyed while process ("/home/matt/.local/bin/pixi") is still running.
QProcess: Destroyed while process ("/home/matt/.local/bin/pixi") is still running.
QProcess: Destroyed while process ("/home/matt/.local/bin/pixi") is still running.
QProcess: Destroyed while process ("/home/matt/.local/bin/pixi") is still running.
QProcess: Destroyed while process ("/home/matt/.local/bin/pixi") is still running.
QProcess: Destroyed while process ("/home/matt/.local/bin/pixi") is still running.
QProcess: Destroyed while process ("/home/matt/.local/bin/pixi") is still running.
QProcess: Destroyed while process ("/home/matt/.local/bin/pixi") is still running.
QProcess: Destroyed while process ("/home/matt/.local/bin/pixi") is still running.
QProcess: Destroyed while process ("/home/matt/.local/bin/pixi") is still running.
QProcess: Destroyed while process ("/home/matt/.local/bin/pixi") is still running.
QProcess: Destroyed while process ("/home/matt/.local/bin/pixi") is still running.
QProcess: Destroyed while process ("/home/matt/.local/bin/pixi") is still running.
QProcess: Destroyed while process ("/home/matt/.local/bin/pixi") is still running.
QProcess: Destroyed while process ("/home/matt/.local/bin/pixi") is still running.
QProcess: Destroyed while process ("/home/matt/.local/bin/pixi") is still running.
QProcess: Destroyed while process ("/home/matt/.local/bin/pixi") is still running.
QProcess: Destroyed while process ("/home/matt/.local/bin/pixi") is still running.
QProcess: Destroyed while process ("/home/matt/.local/bin/pixi") is still running.
QProcess: Destroyed while process ("/home/matt/.local/bin/pixi") is still running.
QProcess: Destroyed while process ("/home/matt/.local/bin/pixi") is still running.
QProcess: Destroyed while process ("/home/matt/.local/bin/pixi") is still running.
Using manifest in "/home/matt/.local/share/OpenChemistry/Avogadro"
QProcess: Destroyed while process ("/home/matt/.local/bin/pixi") is still running.
Using manifest in "/home/matt/.local/share/OpenChemistry/Avogadro"
QProcess: Destroyed while process ("/home/matt/.local/bin/pixi") is still running.
Using manifest in "/home/matt/.local/share/OpenChemistry/Avogadro"
QProcess: Destroyed while process ("/home/matt/.local/bin/pixi") is still running.
Using manifest in "/home/matt/.local/share/OpenChemistry/Avogadro"
QProcess: Destroyed while process ("/home/matt/.local/bin/pixi") is still running.
Using manifest in "/home/matt/.local/share/OpenChemistry/Avogadro"
QProcess: Destroyed while process ("/home/matt/.local/bin/pixi") is still running.
Using manifest in "/home/matt/.local/share/OpenChemistry/Avogadro"
...

and actually takes even longer, so it’s not just the Flatpak, but given there hasn’t been a deluge of complaints on Linux I’m assuming it’s some problem with my system that I need to work out.

It’s more the excessive launch time that’s the imminent problem in my view though.

I think the bigger question might be why is it failing?

Sure, but there will always be some situations that lead to it failing, and I’m suggesting that when that situation arises taking a minute to launch should be avoided, because unless launched via the terminal it just looks like Avogadro is unresponsive.

As to the actual problem, I’ll do some investigation.

Set AVO_PYTHON_SCRIPT_DEBUG=TRUE when running and all the m_debug statements will start showing up.

1 Like

Any progress on this?

I understand the complaint, but I’m less sure on how to address it systematically. I guess in principle, in the scriptloader.cpp code, which gets the list of scripts and queries them for names, it could check for multiple repeated timeouts and quit?

But that seems like it’s just masking the underlying cause.

No, not yet, I’ve been working nights. Next week I’ll have more chance.

I guess I was kind of assuming that the reason for the repeated errors was because somewhere in the code it’s hard-coded to keep trying a certain number of times if the first attempt fails?

No, there are no “retries.” It tries to run the script. If it fails, it goes to the next one.

If it’s taking around a minute, that’s because 5 second timeout multiplied by 11 input generator scripts = 55 seconds.

I guess what I could do in the scriptloader code is to check if multiple scripts with the same directory are returning errors, it can just give up on that directory. But again, that doesn’t solve the root cause.

Ah, I see. I think ideally, if the issue is that Pixi is failing, the Python scripts would just be disabled and none of the scripts would be run at all. But yeah, I’ll see if I can work out what’s going on.

Running the Flatpak:

>>> flatpak run --env=AVO_PYTHON_SCRIPT_DEBUG=TRUE org.openchemistry.Avogadro2
Avogadroapp version:  1.102.1
Avogadrolibs version:  1.102.1
Qt version:  6.9.3
qt.core.qobject.connect: QObject::connect(QObject, Unknown): invalid nullptr parameter
SSL version:  "OpenSSL 3.3.5 30 Sep 2025"
Using locale:  "en_GB"
AvogadroApp Translation  "en_GB"  loaded  "/app/bin/../share/avogadro2/i18n/"
AvogadroLibs Translation  "en_GB"  loaded  "/app/bin/../share/avogadro2/i18n/"
 registering obmm plugins
"/app/bin/obabel"  found:  "/app/bin/obabel: Open Babel 3.1.1 -- Nov 11 2011 -- 11:11:11"
Using manifest in "/home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro"
Executing "/app/bin/pixi" "run --manifest-path /home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro python /app/lib64/avogadro2/scripts/inputGenerators/dalton.py --debug --display-name --lang en_GB" < ""
QProcess: Destroyed while process ("/app/bin/pixi") is still running.
"Cannot load script /app/lib64/avogadro2/scripts/inputGenerators/dalton.py"
Using manifest in "/home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro"
Executing "/app/bin/pixi" "run --manifest-path /home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro python /app/lib64/avogadro2/scripts/inputGenerators/gamessuk.py --debug --display-name --lang en_GB" < ""
QProcess: Destroyed while process ("/app/bin/pixi") is still running.
"Cannot load script /app/lib64/avogadro2/scripts/inputGenerators/gamessuk.py"
Using manifest in "/home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro"
Executing "/app/bin/pixi" "run --manifest-path /home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro python /app/lib64/avogadro2/scripts/inputGenerators/gaussian.py --debug --display-name --lang en_GB" < ""
QProcess: Destroyed while process ("/app/bin/pixi") is still running.
"Cannot load script /app/lib64/avogadro2/scripts/inputGenerators/gaussian.py"
Using manifest in "/home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro"
Executing "/app/bin/pixi" "run --manifest-path /home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro python /app/lib64/avogadro2/scripts/inputGenerators/molpro.py --debug --display-name --lang en_GB" < ""
QProcess: Destroyed while process ("/app/bin/pixi") is still running.
"Cannot load script /app/lib64/avogadro2/scripts/inputGenerators/molpro.py"
Using manifest in "/home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro"
Executing "/app/bin/pixi" "run --manifest-path /home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro python /app/lib64/avogadro2/scripts/inputGenerators/mopac.py --debug --display-name --lang en_GB" < ""
QProcess: Destroyed while process ("/app/bin/pixi") is still running.
"Cannot load script /app/lib64/avogadro2/scripts/inputGenerators/mopac.py"
Using manifest in "/home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro"
Executing "/app/bin/pixi" "run --manifest-path /home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro python /app/lib64/avogadro2/scripts/inputGenerators/nwchem.py --debug --display-name --lang en_GB" < ""
QProcess: Destroyed while process ("/app/bin/pixi") is still running.
"Cannot load script /app/lib64/avogadro2/scripts/inputGenerators/nwchem.py"
Using manifest in "/home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro"
Executing "/app/bin/pixi" "run --manifest-path /home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro python /app/lib64/avogadro2/scripts/inputGenerators/orca.py --debug --display-name --lang en_GB" < ""
QProcess: Destroyed while process ("/app/bin/pixi") is still running.
"Cannot load script /app/lib64/avogadro2/scripts/inputGenerators/orca.py"
Using manifest in "/home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro"
Executing "/app/bin/pixi" "run --manifest-path /home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro python /app/lib64/avogadro2/scripts/inputGenerators/psi4.py --debug --display-name --lang en_GB" < ""
QProcess: Destroyed while process ("/app/bin/pixi") is still running.
"Cannot load script /app/lib64/avogadro2/scripts/inputGenerators/psi4.py"
Using manifest in "/home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro"
Executing "/app/bin/pixi" "run --manifest-path /home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro python /app/lib64/avogadro2/scripts/inputGenerators/pyscf.py --debug --display-name --lang en_GB" < ""
QProcess: Destroyed while process ("/app/bin/pixi") is still running.
"Cannot load script /app/lib64/avogadro2/scripts/inputGenerators/pyscf.py"
Using manifest in "/home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro"
Executing "/app/bin/pixi" "run --manifest-path /home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro python /app/lib64/avogadro2/scripts/inputGenerators/qchem.py --debug --display-name --lang en_GB" < ""
QProcess: Destroyed while process ("/app/bin/pixi") is still running.
"Cannot load script /app/lib64/avogadro2/scripts/inputGenerators/qchem.py"
Using manifest in "/home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro"
Executing "/app/bin/pixi" "run --manifest-path /home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro python /app/lib64/avogadro2/scripts/inputGenerators/terachem.py --debug --display-name --lang en_GB" < ""
QProcess: Destroyed while process ("/app/bin/pixi") is still running.
"Cannot load script /app/lib64/avogadro2/scripts/inputGenerators/terachem.py"
Using manifest in "/home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro"
Executing "/app/bin/pixi" "run --manifest-path /home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro python /app/lib64/avogadro2/scripts/formatScripts/zyx.py --debug --display-name --lang en_GB" < ""
QProcess: Destroyed while process ("/app/bin/pixi") is still running.
"Cannot load script /app/lib64/avogadro2/scripts/formatScripts/zyx.py"
qt.network.http2: stream 1 error: "Connection closed"
qt.network.http2: stream 1 finished with error: "HTTP/2 protocol error"
Open Babel formats ready:  144
Setting default format to cjson.

Running the AppImage produces essentially the same:

>>> AVO_PYTHON_SCRIPT_DEBUG=TRUE ./Downloads/Avogadro2-x86_64.AppImage
Avogadroapp version:  1.102.1
Avogadrolibs version:  1.102.1
Qt version:  6.8.3
qt.core.qobject.connect: QObject::connect(QObject, Unknown): invalid nullptr parameter
SSL version:  "OpenSSL 3.0.2 15 Mar 2022"
qt.qpa.plugin: Could not find the Qt platform plugin "wayland" in ""
Using locale:  "en_GB"
AvogadroApp Translation  "en_GB"  loaded  "/tmp/.mount_AvogadLv6p7D/usr/bin/../share/avogadro2/i18n/"
AvogadroLibs Translation  "en_GB"  loaded  "/tmp/.mount_AvogadLv6p7D/usr/bin/../share/avogadro2/i18n/"
 registering GPL plugins
"/tmp/.mount_AvogadLv6p7D/usr/bin/obabel"  found:  "/tmp/.mount_AvogadLv6p7D/usr/bin/obabel: Open Babel 3.1.1 -- Oct 27 2025 -- 16:26:17"
Using manifest in "/home/matt/.local/share/OpenChemistry/Avogadro"
Executing "/home/matt/.local/bin/pixi" "run --manifest-path /home/matt/.local/share/OpenChemistry/Avogadro python /tmp/.mount_AvogadLv6p7D/usr/lib/avogadro2/scripts/inputGenerators/dalton.py --debug --display-name --lang en_GB" < ""
QProcess: Destroyed while process ("/home/matt/.local/bin/pixi") is still running.
"Cannot load script /tmp/.mount_AvogadLv6p7D/usr/lib/avogadro2/scripts/inputGenerators/dalton.py"
Using manifest in "/home/matt/.local/share/OpenChemistry/Avogadro"
Executing "/home/matt/.local/bin/pixi" "run --manifest-path /home/matt/.local/share/OpenChemistry/Avogadro python /tmp/.mount_AvogadLv6p7D/usr/lib/avogadro2/scripts/inputGenerators/gamessuk.py --debug --display-name --lang en_GB" < ""
QProcess: Destroyed while process ("/home/matt/.local/bin/pixi") is still running.
"Cannot load script /tmp/.mount_AvogadLv6p7D/usr/lib/avogadro2/scripts/inputGenerators/gamessuk.py"
Using manifest in "/home/matt/.local/share/OpenChemistry/Avogadro"
Executing "/home/matt/.local/bin/pixi" "run --manifest-path /home/matt/.local/share/OpenChemistry/Avogadro python /tmp/.mount_AvogadLv6p7D/usr/lib/avogadro2/scripts/inputGenerators/gaussian.py --debug --display-name --lang en_GB" < ""
QProcess: Destroyed while process ("/home/matt/.local/bin/pixi") is still running.
"Cannot load script /tmp/.mount_AvogadLv6p7D/usr/lib/avogadro2/scripts/inputGenerators/gaussian.py"
Using manifest in "/home/matt/.local/share/OpenChemistry/Avogadro"
Executing "/home/matt/.local/bin/pixi" "run --manifest-path /home/matt/.local/share/OpenChemistry/Avogadro python /tmp/.mount_AvogadLv6p7D/usr/lib/avogadro2/scripts/inputGenerators/molpro.py --debug --display-name --lang en_GB" < ""
QProcess: Destroyed while process ("/home/matt/.local/bin/pixi") is still running.
"Cannot load script /tmp/.mount_AvogadLv6p7D/usr/lib/avogadro2/scripts/inputGenerators/molpro.py"
Using manifest in "/home/matt/.local/share/OpenChemistry/Avogadro"
Executing "/home/matt/.local/bin/pixi" "run --manifest-path /home/matt/.local/share/OpenChemistry/Avogadro python /tmp/.mount_AvogadLv6p7D/usr/lib/avogadro2/scripts/inputGenerators/mopac.py --debug --display-name --lang en_GB" < ""
QProcess: Destroyed while process ("/home/matt/.local/bin/pixi") is still running.
"Cannot load script /tmp/.mount_AvogadLv6p7D/usr/lib/avogadro2/scripts/inputGenerators/mopac.py"
Using manifest in "/home/matt/.local/share/OpenChemistry/Avogadro"
Executing "/home/matt/.local/bin/pixi" "run --manifest-path /home/matt/.local/share/OpenChemistry/Avogadro python /tmp/.mount_AvogadLv6p7D/usr/lib/avogadro2/scripts/inputGenerators/nwchem.py --debug --display-name --lang en_GB" < ""
QProcess: Destroyed while process ("/home/matt/.local/bin/pixi") is still running.
"Cannot load script /tmp/.mount_AvogadLv6p7D/usr/lib/avogadro2/scripts/inputGenerators/nwchem.py"
Using manifest in "/home/matt/.local/share/OpenChemistry/Avogadro"
Executing "/home/matt/.local/bin/pixi" "run --manifest-path /home/matt/.local/share/OpenChemistry/Avogadro python /tmp/.mount_AvogadLv6p7D/usr/lib/avogadro2/scripts/inputGenerators/orca.py --debug --display-name --lang en_GB" < ""
QProcess: Destroyed while process ("/home/matt/.local/bin/pixi") is still running.
"Cannot load script /tmp/.mount_AvogadLv6p7D/usr/lib/avogadro2/scripts/inputGenerators/orca.py"
Using manifest in "/home/matt/.local/share/OpenChemistry/Avogadro"
Executing "/home/matt/.local/bin/pixi" "run --manifest-path /home/matt/.local/share/OpenChemistry/Avogadro python /tmp/.mount_AvogadLv6p7D/usr/lib/avogadro2/scripts/inputGenerators/psi4.py --debug --display-name --lang en_GB" < ""
QProcess: Destroyed while process ("/home/matt/.local/bin/pixi") is still running.
"Cannot load script /tmp/.mount_AvogadLv6p7D/usr/lib/avogadro2/scripts/inputGenerators/psi4.py"
Using manifest in "/home/matt/.local/share/OpenChemistry/Avogadro"
Executing "/home/matt/.local/bin/pixi" "run --manifest-path /home/matt/.local/share/OpenChemistry/Avogadro python /tmp/.mount_AvogadLv6p7D/usr/lib/avogadro2/scripts/inputGenerators/pyscf.py --debug --display-name --lang en_GB" < ""
QProcess: Destroyed while process ("/home/matt/.local/bin/pixi") is still running.
"Cannot load script /tmp/.mount_AvogadLv6p7D/usr/lib/avogadro2/scripts/inputGenerators/pyscf.py"
Using manifest in "/home/matt/.local/share/OpenChemistry/Avogadro"
Executing "/home/matt/.local/bin/pixi" "run --manifest-path /home/matt/.local/share/OpenChemistry/Avogadro python /tmp/.mount_AvogadLv6p7D/usr/lib/avogadro2/scripts/inputGenerators/qchem.py --debug --display-name --lang en_GB" < ""
QProcess: Destroyed while process ("/home/matt/.local/bin/pixi") is still running.
"Cannot load script /tmp/.mount_AvogadLv6p7D/usr/lib/avogadro2/scripts/inputGenerators/qchem.py"
Using manifest in "/home/matt/.local/share/OpenChemistry/Avogadro"
Executing "/home/matt/.local/bin/pixi" "run --manifest-path /home/matt/.local/share/OpenChemistry/Avogadro python /tmp/.mount_AvogadLv6p7D/usr/lib/avogadro2/scripts/inputGenerators/terachem.py --debug --display-name --lang en_GB" < ""
QProcess: Destroyed while process ("/home/matt/.local/bin/pixi") is still running.
"Cannot load script /tmp/.mount_AvogadLv6p7D/usr/lib/avogadro2/scripts/inputGenerators/terachem.py"
Using manifest in "/home/matt/.local/share/OpenChemistry/Avogadro"
Executing "/home/matt/.local/bin/pixi" "run --manifest-path /home/matt/.local/share/OpenChemistry/Avogadro python /tmp/.mount_AvogadLv6p7D/usr/lib/avogadro2/scripts/formatScripts/zyx.py --debug --display-name --lang en_GB" < ""
QProcess: Destroyed while process ("/home/matt/.local/bin/pixi") is still running.
"Cannot load script /tmp/.mount_AvogadLv6p7D/usr/lib/avogadro2/scripts/formatScripts/zyx.py"
qt.network.http2: stream 1 finished with error: "Connection closed"
Open Babel formats ready:  145
Setting default format to cjson.

I wondered if using python rather than python3 was the issue (it isn’t) so to test it I ran a bash shell within the Flatpak sandbox (comments added after-the-fact):

>>> flatpak run --command=bash org.openchemistry.Avogadro2
[📦 org.openchemistry.Avogadro2 ~]$ pixi run python
Error:   × could not find pixi.toml or pyproject.toml with tool.pixi at directory /home/matt
[📦 org.openchemistry.Avogadro2 ~]$ cd .var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro/
[📦 org.openchemistry.Avogadro2 Avogadro]$ ls
pyproject.toml # No pixi.lock!
[📦 org.openchemistry.Avogadro2 Avogadro]$ pixi run python
Python 3.14.0 | packaged by conda-forge | (main, Oct 22 2025, 23:24:08) [GCC 14.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
Could not open PYTHONSTARTUP
FileNotFoundError: [Errno 2] No such file or directory: '/etc/pythonstart'
>>> exit()
[📦 org.openchemistry.Avogadro2 Avogadro]$ ls
pixi.lock  pyproject.toml
# pixi.lock now present

Note that before the interpreter ran, Pixi spent a while resolving the environment and downloading the necessary pieces, including Python, and then writing the lockfile. This took a good 30–60 seconds.

I guess it would have been more useful if I’d ran ls -a to check for a .venv but I assume it would be absent, then present, in the same way as pixi.lock. If you’d like me to check this, I can do that later.

When I exit the sandbox and run the Flatpak again, the output looks more like success:

>>> flatpak run --env=AVO_PYTHON_SCRIPT_DEBUG=TRUE org.openchemistry.Avogadro2
Avogadroapp version:  1.102.1
Avogadrolibs version:  1.102.1
Qt version:  6.9.3
qt.core.qobject.connect: QObject::connect(QObject, Unknown): invalid nullptr parameter
SSL version:  "OpenSSL 3.3.5 30 Sep 2025"
Using locale:  "en_GB"
AvogadroApp Translation  "en_GB"  loaded  "/app/bin/../share/avogadro2/i18n/"
AvogadroLibs Translation  "en_GB"  loaded  "/app/bin/../share/avogadro2/i18n/"
 registering obmm plugins
"/app/bin/obabel"  found:  "/app/bin/obabel: Open Babel 3.1.1 -- Nov 11 2011 -- 11:11:11"
Using manifest in "/home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro"
Executing "/app/bin/pixi" "run --manifest-path /home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro python /app/lib64/avogadro2/scripts/inputGenerators/dalton.py --debug --display-name --lang en_GB" < ""
Output: "DALTON\n"
Using manifest in "/home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro"
Executing "/app/bin/pixi" "run --manifest-path /home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro python /app/lib64/avogadro2/scripts/inputGenerators/gamessuk.py --debug --display-name --lang en_GB" < ""
Output: "GAMESS-UK\n"
Using manifest in "/home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro"
Executing "/app/bin/pixi" "run --manifest-path /home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro python /app/lib64/avogadro2/scripts/inputGenerators/gaussian.py --debug --display-name --lang en_GB" < ""
Output: "Gaussian\n"
Using manifest in "/home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro"
Executing "/app/bin/pixi" "run --manifest-path /home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro python /app/lib64/avogadro2/scripts/inputGenerators/molpro.py --debug --display-name --lang en_GB" < ""
Output: "MOLPRO\n"
Using manifest in "/home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro"
Executing "/app/bin/pixi" "run --manifest-path /home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro python /app/lib64/avogadro2/scripts/inputGenerators/mopac.py --debug --display-name --lang en_GB" < ""
Output: "MOPAC\n"
Using manifest in "/home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro"
Executing "/app/bin/pixi" "run --manifest-path /home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro python /app/lib64/avogadro2/scripts/inputGenerators/nwchem.py --debug --display-name --lang en_GB" < ""
Output: "NWChem\n"
Using manifest in "/home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro"
Executing "/app/bin/pixi" "run --manifest-path /home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro python /app/lib64/avogadro2/scripts/inputGenerators/orca.py --debug --display-name --lang en_GB" < ""
Output: "ORCA\n"
Using manifest in "/home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro"
Executing "/app/bin/pixi" "run --manifest-path /home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro python /app/lib64/avogadro2/scripts/inputGenerators/psi4.py --debug --display-name --lang en_GB" < ""
Output: "Psi\n"
Using manifest in "/home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro"
Executing "/app/bin/pixi" "run --manifest-path /home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro python /app/lib64/avogadro2/scripts/inputGenerators/pyscf.py --debug --display-name --lang en_GB" < ""
Output: "PYSCF\n"
Using manifest in "/home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro"
Executing "/app/bin/pixi" "run --manifest-path /home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro python /app/lib64/avogadro2/scripts/inputGenerators/qchem.py --debug --display-name --lang en_GB" < ""
Output: "Q-Chem\n"
Using manifest in "/home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro"
Executing "/app/bin/pixi" "run --manifest-path /home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro python /app/lib64/avogadro2/scripts/inputGenerators/terachem.py --debug --display-name --lang en_GB" < ""
Output: "TeraChem\n"
Using manifest in "/home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro"
Executing "/app/bin/pixi" "run --manifest-path /home/matt/.var/app/org.openchemistry.Avogadro2/data/OpenChemistry/Avogadro python /app/lib64/avogadro2/scripts/formatScripts/zyx.py --debug --display-name --lang en_GB" < ""
"Cannot load script /app/lib64/avogadro2/scripts/formatScripts/zyx.py"
Open Babel formats ready:  144
Setting default format to cjson.
current version is newer than latest release

and while still not exactly instant, launch is much much faster. So it looks like the issue is that the pixi environment isn’t being successfully initialized.

To my knowledge, AppImage containers have no sandboxing by default, so the HTTP requests failing is not a consequence of the Flatpak sandbox restrictions. In any case, network access is one of the permissions that the Flatpak requires (and therefore has unless manually revoked post-installation).

I guess my next step will be to try running the same pixi commands as Avogadro does manually, from an unintialized Flatpak sandbox.

Definitely some users are seeing this too. The current HEAD should have better detection logic (e.g., it looks for .pixi but also checks to see that there’s an executable python in there)

I think some users may have trouble getting pixi install to run in 10 seconds, but I’m not sure the best way to handle that. It can certainly run in the background with a progress indicator, but I’m not sure how to set a good progress indicator (e.g., if the network connection fails / hangs, etc.)

Ok, I’ll pull that in and see if it helps.

Yeah, if Avogadro detects that the environment hasn’t yet been set up, it should definitely launch anyway. It could then offer in a dialog to complete Python setup as a one time thing?

Once I get time to work on the plugin infrastructure myself (soon…) I’m in general hoping to move all Python execution out of the launch process anyway.

To save having to write a complicated progress indicator and associated logic for now, how about that pixi install process is just launched in a separate console window? Pixi provides nice progress bars and stuff itself, you could just piggy-back off that for now.

I’m not sure that’s possible on Mac or Windows.

But I’ll see if there’s a good way to provide the pixi output into a progress bar or something.

1 Like