Skip to content

Commit 2848f96

Browse files
committed
add pyinstaller based macos build
1 parent fb2b608 commit 2848f96

File tree

5 files changed

+55
-9
lines changed

5 files changed

+55
-9
lines changed

.github/workflows/build_installers.yaml

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
name: build_installers
22

33
on:
4+
workflow_dispatch:
45
push:
6+
branches:
7+
- "**"
58
tags:
69
- '**'
710

@@ -72,14 +75,13 @@ jobs:
7275
run: |
7376
cd deployment
7477
micromamba activate base
75-
micromamba install -y -c conda-forge python=3.10
76-
micromamba install -y -c conda-forge constructor
77-
micromamba install -y -c conda-forge ruamel.yaml
7878
micromamba install -y -c conda-forge mamba
7979
mamba env create --file=env.yaml
80-
python version_getter.py
81-
mkdir ./${{ matrix.os }}_x86_64
82-
constructor --conda-exe=$(which mamba) --output-dir ./${{ matrix.os }}_x86_64 .
80+
micromamba activate __MICROSAM_BUILD_ENV__
81+
mamba install -y -c conda-forge pyinstaller
82+
source ./build_pyinstaller_app.sh
83+
mv ./dist/annotator ./${{ matrix.os }}_x86_64
84+
8385
8486
- name: upload installer
8587
uses: actions/upload-artifact@v3
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
#!/bin/bash
2+
rm -rf dist
3+
rm -f annotator.py
4+
echo "from micro_sam.sam_annotator.annotator import main" >> annotator.py
5+
echo "main()" >> annotator.py
6+
PYTHON_SITE=$(python -c "import site; print(''.join(site.getsitepackages()))")
7+
echo $PYTHON_SITE
8+
ls $PYTHON_SITE
9+
pyinstaller --log-level=DEBUG \
10+
--hidden-import=napari_svg \
11+
--hidden-import=napari_plugin_engine \
12+
--hidden-import=napari_console \
13+
--hidden-import=napari_builtins \
14+
--hidden-import=napari._event_loop \
15+
--hidden-import=vispy.app.backends._pyqt5 \
16+
--hidden-import=fontconfig \
17+
--hidden-import=magicgui.backends._qtpy \
18+
--hidden-import=imagecodecs._shared \
19+
--hidden-import=torchvision.io \
20+
--hidden-import=pytorch.jit \
21+
--hidden-import=torchtriton \
22+
--hidden-import=imagecodecs._imcd \
23+
--hidden-import=jpeg \
24+
--hidden-import=libnvjpeg \
25+
--hidden-import=openjpeg \
26+
--hidden-import=libpng \
27+
--hidden-import=micro_sam \
28+
--add-data "${PYTHON_SITE}/napari/resources/icons:napari/resources/icons" \
29+
--add-data "${PYTHON_SITE}/napari/_qt/qt_resources/styles:napari/_qt/qt_resources/styles" \
30+
--add-data "${PYTHON_SITE}/vispy/io/_data:vispy/io/_data" \
31+
--add-data "${PYTHON_SITE}/vispy/util/fonts/data:vispy/util/fonts/data" \
32+
--add-data "${PYTHON_SITE}/napari_builtins:napari_builtins" \
33+
--add-data "${PYTHON_SITE}/PIL:PIL" \
34+
--add-data "${PYTHON_SITE}/torchvision:torchvision" \
35+
--add-data "${PYTHON_SITE}/torch:torch" \
36+
--add-data "${PYTHON_SITE}/numpy:numpy" \
37+
--add-data "${PYTHON_SITE}/vispy/glsl:vispy/glsl" annotator.py
38+
39+
mkdir ./dist/annotator/lib
40+
ls ./dist/annotator
41+
#cp ./dist/annotator/libiomp5.dylib ./dist/annotator/lib
42+
cd ./dist/annotator
43+
./annotator

micro_sam/sam_annotator/annotator_2d.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ def _autosegment_widget(
6060
if AMG is None:
6161
AMG = instance_segmentation.get_amg(PREDICTOR, is_tiled)
6262

63+
print("initializing autosegment")
6364
if not AMG.is_initialized:
6465
AMG.initialize(v.layers["raw"].data, image_embeddings=IMAGE_EMBEDDINGS, verbose=True)
6566

@@ -92,7 +93,7 @@ def _initialize_viewer(raw, segmentation_result, tile_shape, show_embeddings):
9293
# initialize the viewer and add layers
9394
#
9495

95-
v.add_image(raw)
96+
v.add_image(raw, name="raw")
9697
shape = _get_shape(raw)
9798

9899
v.add_labels(data=np.zeros(shape, dtype="uint32"), name="auto_segmentation")

micro_sam/sam_annotator/annotator_3d.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,7 @@ def annotator_3d(
239239

240240
v = Viewer()
241241

242-
v.add_image(raw)
242+
v.add_image(raw, name="raw")
243243
if segmentation_result is None:
244244
v.add_labels(data=np.zeros(raw.shape, dtype="uint32"), name="committed_objects")
245245
else:

micro_sam/sam_annotator/annotator_tracking.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -433,7 +433,7 @@ def annotator_tracking(
433433

434434
v = Viewer()
435435

436-
v.add_image(raw)
436+
v.add_image(raw, name="raw")
437437
if tracking_result is None:
438438
v.add_labels(data=np.zeros(raw.shape, dtype="uint32"), name="committed_tracks")
439439
else:

0 commit comments

Comments
 (0)