Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Windows OS error while running caiman - FileNotFound #56

Closed
GarrettBlair opened this issue Jun 21, 2022 · 6 comments
Closed

Windows OS error while running caiman - FileNotFound #56

GarrettBlair opened this issue Jun 21, 2022 · 6 comments

Comments

@GarrettBlair
Copy link

Running Windows 11 x64, running caiman gives a couple errors:

I can confirm the file is there -
os.path.isfile('C:/Users/gjb326/caiman_data/mesmerize-core-batch/f1f56d3d-53b9-4e80-a92c-a34a635b28da.runfile.ps1') returns True, but only when the '.ps1' is appended

But os.path.isfile(r'C:\Users\..\..a.runfile.ps1') and os.path.isfile('C:\\Users\\..\\..a.runfile.ps1') return False

---------------------------------Begin error------------------------------------------
OSError Traceback (most recent call last)
File c:\users\gjb326\mesmerize-core\mesmerize_core\caiman_extensions\common.py:248, in CaimanSeriesExtensions.run(self, backend, callbacks_finished, callback_std_out)
247 try:
--> 248 self.process = getattr(self, f"run{backend}")(
249 runfile, callbacks_finished, callback_std_out
250 )
251 except:

File c:\users\gjb326\mesmerize-core\mesmerize_core\caiman_extensions\common.py:184, in CaimanSeriesExtensions._run_subprocess(self, runfile_path, callbacks_finished, callback_std_out)
182 parent_path = self._series.paths.resolve(self._series.input_movie_path).parent
--> 184 self.process = Popen(runfile_path, cwd=parent_path)
185 return self.process

File ~\Anaconda3\envs\mesmerize-core\lib\subprocess.py:951, in Popen.init(self, args, bufsize, executable, stdin, stdout, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags, restore_signals, start_new_session, pass_fds, user, group, extra_groups, encoding, errors, text, umask)
948 self.stderr = io.TextIOWrapper(self.stderr,
949 encoding=encoding, errors=errors)
--> 951 self._execute_child(args, executable, preexec_fn, close_fds,
952 pass_fds, cwd, env,
953 startupinfo, creationflags, shell,
954 p2cread, p2cwrite,
955 c2pread, c2pwrite,
956 errread, errwrite,
957 restore_signals,
958 gid, gids, uid, umask,
959 start_new_session)
960 except:
961 # Cleanup if the child failed starting.

File ~\Anaconda3\envs\mesmerize-core\lib\subprocess.py:1420, in Popen._execute_child(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, unused_restore_signals, unused_gid, unused_gids, unused_uid, unused_umask, unused_start_new_session)
1419 try:
-> 1420 hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
1421 # no special security
1422 None, None,
1423 int(not close_fds),
1424 creationflags,
1425 env,
1426 cwd,
1427 startupinfo)
1428 finally:
1429 # Child is launched. Close the parent's copy of those pipe
1430 # handles that only the child should have open. You need
(...)
1433 # pipe will not close when the child process exits and the
1434 # ReadFile will hang.

OSError: [WinError 193] %1 is not a valid Win32 application

During handling of the above exception, another exception occurred:

FileNotFoundError Traceback (most recent call last)
Input In [5], in <cell line: 3>()
1 # run the first "batch item"
2 # this will run in a subprocess by default
----> 3 process = df.iloc[0].caiman.run()
4 process.wait()

File c:\users\gjb326\mesmerize-core\mesmerize_core\caiman_extensions\common.py:252, in CaimanSeriesExtensions.run(self, backend, callbacks_finished, callback_std_out)
248 self.process = getattr(self, f"run{backend}")(
249 runfile, callbacks_finished, callback_std_out
250 )
251 except:
--> 252 with open(runfile_path, "r") as f:
253 raise ValueError(f.read())
255 return self.process

FileNotFoundError: [Errno 2] No such file or directory: 'C:\Users\gjb326\caiman_data\mesmerize-core-batch\f1f56d3d-53b9-4e80-a92c-a34a635b28da.runfile'

kushalkolar added a commit that referenced this issue Jun 21, 2022
@kushalkolar
Copy link
Collaborator

thanks! making a fix for this here #57

On your local workstation if you go into the mesmerize-core repo and:

git pull origin fix-56-windows-runfile
git checkout fix-56-windows-runfile

and then try it out it should have fixed it, I will merge if the tests on that PR pass.

@GarrettBlair
Copy link
Author

Done and done.

Looks like the file path is good now, but still returning an error:
---------------------------------Begin error------------------------------------------
OSError Traceback (most recent call last)
File c:\users\gjb326\mesmerize-core\mesmerize_core\caiman_extensions\common.py:248, in CaimanSeriesExtensions.run(self, backend, callbacks_finished, callback_std_out)
247 try:
--> 248 self.process = getattr(self, f"run{backend}")(
249 runfile_path, callbacks_finished, callback_std_out
250 )
251 except:

File c:\users\gjb326\mesmerize-core\mesmerize_core\caiman_extensions\common.py:184, in CaimanSeriesExtensions._run_subprocess(self, runfile_path, callbacks_finished, callback_std_out)
182 parent_path = self._series.paths.resolve(self._series.input_movie_path).parent
--> 184 self.process = Popen(runfile_path, cwd=parent_path)
185 return self.process

File ~\Anaconda3\envs\mesmerize-core\lib\subprocess.py:951, in Popen.init(self, args, bufsize, executable, stdin, stdout, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags, restore_signals, start_new_session, pass_fds, user, group, extra_groups, encoding, errors, text, umask)
948 self.stderr = io.TextIOWrapper(self.stderr,
949 encoding=encoding, errors=errors)
--> 951 self._execute_child(args, executable, preexec_fn, close_fds,
952 pass_fds, cwd, env,
953 startupinfo, creationflags, shell,
954 p2cread, p2cwrite,
955 c2pread, c2pwrite,
956 errread, errwrite,
957 restore_signals,
958 gid, gids, uid, umask,
959 start_new_session)
960 except:
961 # Cleanup if the child failed starting.

File ~\Anaconda3\envs\mesmerize-core\lib\subprocess.py:1420, in Popen._execute_child(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, unused_restore_signals, unused_gid, unused_gids, unused_uid, unused_umask, unused_start_new_session)
1419 try:
-> 1420 hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
1421 # no special security
1422 None, None,
1423 int(not close_fds),
1424 creationflags,
1425 env,
1426 cwd,
1427 startupinfo)
1428 finally:
1429 # Child is launched. Close the parent's copy of those pipe
1430 # handles that only the child should have open. You need
(...)
1433 # pipe will not close when the child process exits and the
1434 # ReadFile will hang.

OSError: [WinError 193] %1 is not a valid Win32 application

During handling of the above exception, another exception occurred:

ValueError Traceback (most recent call last)
Input In [6], in <cell line: 3>()
1 # run the first "batch item"
2 # this will run in a subprocess by default
----> 3 process = df.iloc[0].caiman.run()
4 process.wait()

File c:\users\gjb326\mesmerize-core\mesmerize_core\caiman_extensions\common.py:253, in CaimanSeriesExtensions.run(self, backend, callbacks_finished, callback_std_out)
251 except:
252 with open(runfile_path, "r") as f:
--> 253 raise ValueError(f.read())
255 return self.process

ValueError: $env:ALLUSERSPROFILE="C:\ProgramData";
$env:APPDATA="C:\Users\gjb326\AppData\Roaming";
$env:COMMONPROGRAMFILES="C:\Program Files\Common Files";
$env:COMMONPROGRAMFILES(X86)="C:\Program Files (x86)\Common Files";
$env:COMMONPROGRAMW6432="C:\Program Files\Common Files";
$env:COMPUTERNAME="030B2110005877";
$env:COMSPEC="C:\Windows\system32\cmd.exe";
$env:CONDA_DEFAULT_ENV="mesmerize-core";
$env:CONDA_EXE="C:\Users\gjb326\Anaconda3\Scripts\conda.exe";
$env:CONDA_PREFIX="C:\Users\gjb326\Anaconda3\envs\mesmerize-core";
$env:CONDA_PREFIX_1="C:\Users\gjb326\Anaconda3";
$env:CONDA_PROMPT_MODIFIER="(mesmerize-core) ";
$env:CONDA_PYTHON_EXE="C:\Users\gjb326\Anaconda3\python.exe";
$env:CONDA_SHLVL="2";
$env:CUDA_PATH="C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6";
$env:CUDA_PATH_V11_6="C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6";
$env:DRIVERDATA="C:\Windows\System32\Drivers\DriverData";
$env:FPS_BROWSER_APP_PROFILE_STRING="Internet Explorer";
$env:FPS_BROWSER_USER_PROFILE_STRING="Default";
$env:HOMEDRIVE="C:";
$env:HOMEPATH="\Users\gjb326";
$env:LOCALAPPDATA="C:\Users\gjb326\AppData\Local";
$env:LOGONSERVER="\ITS09-WDC";
$env:MKL_NUM_THREADS="1";
$env:NUMBER_OF_PROCESSORS="24";
$env:NVTOOLSEXT_PATH="C:\Program Files\NVIDIA Corporation\NvToolsExt";
$env:ONEDRIVE="C:\Users\gjb326\OneDrive";
$env:OPENBLAS_NUM_THREADS="1";
$env:OS="Windows_NT";
$env:PATH="C:\Users\gjb326\Anaconda3\envs\mesmerize-core;C:\Users\gjb326\Anaconda3\envs\mesmerize-core\Library\mingw-w64\bin;C:\Users\gjb326\Anaconda3\envs\mesmerize-core\Library\usr\bin;C:\Users\gjb326\Anaconda3\envs\mesmerize-core\Library\bin;C:\Users\gjb326\Anaconda3\envs\mesmerize-core\Scripts;C:\Users\gjb326\Anaconda3\envs\mesmerize-core\bin;C:\Users\gjb326\Anaconda3\condabin;C:\Program Files\NVIDIA\CUDNN\v 8.4.0.27;C:\Program Files\Git\cmd;"C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem";C:\Windows\system32;C:\Users\gjb326\Anaconda3;C:\Users\gjb326\Anaconda3\Library\mingw-w64\bin;C:\Users\gjb326\Anaconda3\Library\usr\bin;C:\Users\gjb326\Anaconda3\Library\bin;C:\Users\gjb326\Anaconda3\Scripts;C:\Users\gjb326\AppData\Local\Microsoft\WindowsApps;C:\Users\gjb326\AppData\Local\GitHubDesktop\bin;C:\Users\gjb326\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\gjb326\AppData\Roaming\npm;"C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0";C:\Windows\system32;.";
$env:PATHEXT=".COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC";
$env:PROCESSOR_ARCHITECTURE="AMD64";
$env:PROCESSOR_IDENTIFIER="Intel64 Family 6 Model 151 Stepping 2, GenuineIntel";
$env:PROCESSOR_LEVEL="6";
$env:PROCESSOR_REVISION="9702";
$env:PROGRAMDATA="C:\ProgramData";
$env:PROGRAMFILES="C:\Program Files";
$env:PROGRAMFILES(X86)="C:\Program Files (x86)";
$env:PROGRAMW6432="C:\Program Files";
$env:PROMPT="(mesmerize-core) $P$G";
$env:PSMODULEPATH="C:\Program Files\WindowsPowerShell\Modules;C:\Windows\system32\WindowsPowerShell\v1.0\Modules";
$env:PUBLIC="C:\Users\Public";
$env:SESSIONNAME="Console";
$env:SYSTEMDRIVE="C:";
$env:SYSTEMROOT="C:\Windows";
$env:TEMP="C:\Users\gjb326\AppData\Local\Temp";
$env:TMP="C:\Users\gjb326\AppData\Local\Temp";
$env:USERDNSDOMAIN="AD.NYU.EDU";
$env:USERDOMAIN="AD";
$env:USERDOMAIN_ROAMINGPROFILE="AD";
$env:USERNAME="gjb326";
$env:USERPROFILE="C:\Users\gjb326";
$env:VBOX_MSI_INSTALL_PATH="C:\Program Files\Oracle\VirtualBox";
$env:WINDIR="C:\Windows";
$env:ZES_ENABLE_SYSMAN="1";
$env:PYDEVD_USE_FRAME_EVAL="NO";
$env:JPY_INTERRUPT_EVENT="2724";
$env:IPY_INTERRUPT_EVENT="2724";
$env:JPY_PARENT_PID="2720";
$env:TERM="xterm-color";
$env:CLICOLOR="1";
$env:PAGER="cat";
$env:GIT_PAGER="cat";
$env:MPLBACKEND="module://matplotlib_inline.backend_inline";
$env:KMP_DUPLICATE_LIB_OK="True";
$env:KMP_INIT_AT_FORK="FALSE";
$env:TF2_BEHAVIOR="1";
$env:QT_API="pyqt5";
python c:\users\gjb326\mesmerize-core\mesmerize_core\algorithms\mcorr.py --batch-path C:\Users\gjb326\caiman_data\mesmerize-core-batch\batch.pickle --uuid d6d30735-2a5b-4034-b692-4b0966f489bb --data-path C:\Users\gjb326\caiman_data

@kushalkolar
Copy link
Collaborator

kushalkolar commented Jun 21, 2022 via email

@kushalkolar
Copy link
Collaborator

@GarrettBlair windows compatibility has finally been merged and it works on GitHub's CI pipelines, so if you install the latest master branch it should work for you! Note that you'll still need to install pandas either directly from github or the nightly wheels (see below) since they still haven't released v1.5.

If you're on python3.10 you should be able to install this pre-built wheel for pandas 1.5:

pip install https://pypi.anaconda.org/scipy-wheels-nightly/simple/pandas/1.5.0.dev0%2B1172.ga7c5773d19/pandas-1.5.0.dev0%2B1172.ga7c5773d19-cp310-cp310-win_amd64.whl

or if you're on python3.9:

pip install https://pypi.anaconda.org/scipy-wheels-nightly/simple/pandas/1.5.0.dev0%2B1172.ga7c5773d19/pandas-1.5.0.dev0%2B1172.ga7c5773d19-cp39-cp39-win_amd64.whl

New docs are also up: https://mesmerize-core.readthedocs.io/
the demo notebook is best place to get started, note that it requires fastplotlib for the visualizations: https:/nel-lab/mesmerize-core/blob/master/notebooks/mcorr_cnmf.ipynb

@GarrettBlair
Copy link
Author

Awesome, thanks for the thorough response Kushal!

@kushalkolar
Copy link
Collaborator

closing, mesmerize-core is now available as a conda package, see the readme for installation details.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants