ssec/sift

SIFT 1.1.3 windows experimental builds do not start

Closed this issue · 4 comments

Downloaded 20200612_160153 experimental version, and unpacked it onto a Win10pro VM with OpenGL3 drivers to confirm that it starts up. Noted that the EXEs and DLLs are all placed in the SIFT_1.1.3 directory instead of the DLLs or bin directory, which may or may not be significant to the below error.

Running SIFT startup script appeared to initially work as intended, then failed. Intercepting the error before the window closed was somewhat difficult. A partial screengrab is included showing "The application failed to start because no Qt platform plugin could be initialized." after 'Could not find the Qt platform plugin "windows" in ""'.

image

Further illustration of the zipfile layout. Note that I used windows explorer to unpack the zipfile, all 85000+ files of it.

image

image

One thing to try: maybe the environment isn't being activated properly in the .bat file. You could try manually activating it then calling python -m uwsift. However, I'm not sure the proper way to activate a conda-pack'd environment on Windows because it isn't documented in their docs from what I can see:

https://conda.github.io/conda-pack/

The issue is that the qt.conf in the base directory needs updating.

as shipped:

[Paths] 
Prefix = C:/tools/miniconda3/envs/test/Library
Binaries = C:/tools/miniconda3/envs/test/Library/bin
Libraries = C:/tools/miniconda3/envs/test/Library/lib
Headers = C:/tools/miniconda3/envs/test/Library/include/qt
TargetSpec = win32-msvc
HostSpec = win32-msvc

Example of a patched version which allowed SIFT to start up:

[Paths] 
Prefix = C:/Users/user/Desktop/SIFT_1.1.3dev_windows_20200612_160153/SIFT_1.1.3/Library
Binaries = C:/Users/user/Desktop/SIFT_1.1.3dev_windows_20200612_160153/SIFT_1.1.3/Library/bin
Libraries = C:/Users/user/Desktop/SIFT_1.1.3dev_windows_20200612_160153/SIFT_1.1.3/Library/lib
Headers = C:/Users/user/Desktop/SIFT_1.1.3dev_windows_20200612_160153/SIFT_1.1.3/Library/include/qt
TargetSpec = win32-msvc
HostSpec = win32-msvc

This needs to happen at the time the conda environment is unpacked/relocated, by expanding a template or using python search-replace.

In addition to filing a bug with conda-pack (this may just be unsupported), we could add this to our SIFT.bat if needed which already calls conda-unpack. We should verify that this exists or doesn't exist and how it is handled by conda-unpack on linux and OSX environments.