Some modules are not successfully loaded by 'import pythonmonkey' on windows
Issue type
Bug
How did you install PythonMonkey?
Installed from pip
OS platform and distribution
Windows 11
Python version (python --version)
3.12
PythonMonkey version (pip show pythonmonkey)
1.0.0
Bug Description
I debugged through this and eventually found that in ctx-module.js::219 there is a regex check for whether the file path is absolute Unfortunately on Windows, drive letters may be lowercase, and this was not caught by the regex.
existing code: if (moduleIdentifier[0] === '/' || moduleIdentifier.match(/^[A-Z]:[/\]/)) // absolute paths my local fix: if (moduleIdentifier[0] === '/' || moduleIdentifier.match(/^[A-Za-z]:[/\]/)) // absolute paths
Standalone code to reproduce the issue
import pythonmonkey as pm
Relevant log output or backtrace
PS C:\dev\tsc> c:; cd 'c:\dev\tsc'; & 'c:\Users\jac.fitzgerald\AppData\Local\Programs\Python\Python312\python.exe' 'c:\Users\jac.fitzgerald\.vscode\extensions\ms-python.debugpy-2024.10.0-win32-x64\bundled\libs\debugpy\adapter/../..\debugpy\launcher' '53945' '--' 'C:\dev\tsc\samples\call-embedding-lib.py'
Traceback (most recent call last):
File "C:\dev\tsc\samples\call-embedding-lib.py", line 2, in <module>
import pythonmonkey as pm
File "c:\Users\jac.fitzgerald\AppData\Local\Programs\Python\Python312\Lib\site-packages\pythonmonkey\__init__.py", line 17, in <module>
require("timers")
File "c:\Users\jac.fitzgerald\AppData\Local\Programs\Python\Python312\Lib\site-packages\pythonmonkey\require.py", line 429, in require
return createRequire(filename)(moduleIdentifier)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pythonmonkey.SpiderMonkeyError: Error in file c:\Users\jac.fitzgerald\AppData\Local\Programs\Python\Python312\Lib\site-packages\pythonmonkey\node_modules/ctx-module/ctx-module.js, on line 239, column 21:
Error: module not found -- searched ('c:/Users/jac.fitzgerald/AppData/Local/Programs/Python/Python312/Lib/site-packages/pythonmonkey/node_modules/core-js/stable/dom-exception') from c:/Users/jac.fitzgerald/AppData/Local/Programs/Python/Python312/Lib/site-packages/pythonmonkey/node_modules/core-js/actual/dom-exception/index.js
Stack Trace:
ctxRequire@c:\Users\jac.fitzgerald\AppData\Local\Programs\Python\Python312\Lib\site-packages\pythonmonkey\node_modules/ctx-module/ctx-module.js:122:7
Additional info if applicable
No response
What branch of PythonMonkey were you developing on? (If applicable)
No response
Awesome bug report @jacalata! I filed a PR on ctx-module https://github.com/wesgarland/ctx-module/pull/9 and added you as a co-author
I'll keep this issue open while this remains an issue on PythonMonkey
@wesgarland @Xmader would you mind reviewing this https://github.com/wesgarland/ctx-module/pull/9 when you have the time?
@wiwichips I reviewed this and it works perfectly on Windows :) imho you can merge it
@wesgarland @Xmader -- Please check out my PR on ctx-module (https://github.com/wesgarland/ctx-module/pull/9) it may possibly affect Bifrost2 on Windows
Thanks @wiwichips and @mxrch! I believe only @wesgarland can merge it.
@Xmader would you mind asking Wes to merge it, after you review it. It may possibly affect Bifrost2 on Windows