15 sept 2025

sas-pro build

get the source:
git clone https://github.com/setiastro/setiastrosuitepro.git

setup the virtual environment
cd ~/setiastrosuitepro
python3 -m venv venv
. venv/bin/activate

install the requirements
pip install -r requirements.txt

run from the source
At this point, the source is ready to run:
./venv/bin/python setiastrosuitepro.py

update
cd ~/setiastrosuitepro
git pull

go
./venv/bin/python setiastrosuitepro.py

 --- --- ---

But you may want to make an app to distribute to your friends who -shame- don't have a virtual environment, so...

prepare the .spec file
pyi-makespec --onefile setiastrosuitepro.py

edit the .spec file
Here are the units required to build a standalone app without needing the source. 
Tested on kubuntu 24.04.2

astroquery CITATION
astropy CITATION
photutils
onnxruntime
the png icon images in the root of the git

Add that to the output of the pyi-makespec file using the paths on your computer. 
Mine looks like this:

setiastrosuitepro.spec

# -*- mode: python ; coding: utf-8 -*-

a = Analysis(
    ['setiastrosuitepro.py'],
    pathex=[],
    datas=[
    ('/home/steve/setiastrosuitepro/venv/lib/python3.12/site-packages/astroquery', 'astroquery'),
    ('/home/steve/setiastrosuitepro/venv/lib/python3.12/site-packages/astropy', 'astropy'),
    ('/home/steve/setiastrosuitepro/venv/lib/python3.12/site-packages/photutils', 'photutils'),
    ('/home/steve/setiastrosuitepro/venv/lib/python3.12/site-packages/onnxruntime', 'onnxruntime'),
    ('/home/steve/setiastrosuitepro/*.png', '.'),
    ],
    binaries=[],
    hookspath=[],
    hooksconfig={},
    runtime_hooks=[],
    excludes=[],
    noarchive=False,
    optimize=0,
    )
pyz = PYZ(a.pure)

exe = EXE(
    pyz,
    a.scripts,
    a.binaries,
    a.datas,
    [],
    name='setiastrosuitepro',
    debug=False,
    bootloader_ignore_signals=False,
    strip=False,
    upx=True,
    upx_exclude=[],
    runtime_tmpdir=None,
    console=True,
    disable_windowed_traceback=False,
    argv_emulation=False,
    target_arch=None,
    codesign_identity=None,
    entitlements_file=None,
)

test
Deep breath, then...

cd ~/setiastrosuitepro/dist
./setiastrosutepro

and, yeyhhh... You now have a single file which will work outside the venv.

please donate to help Franklin on his journey

No hay comentarios:

Publicar un comentario