getappmap / getappmap/appmap-python
Cannot run appmap with clr package.
Open
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 104
- Forks
- 17
- PR merge metrics
- No merged PRs in 30d
Description
I thought I'd try out your application, but I ran into an issue early. Seems like it doesn't work with either pythonnet or clr. Below you can see I just install the two and I cannot import clr.
PS C:\Users\ericfoss\temp> pipenv graph
appmap==1.14.1
- importlib-metadata [required: >=0.8, installed: 6.0.0]
- zipp [required: >=0.5, installed: 3.14.0]
- importlib-resources [required: >=5.4.0,<6.0.0, installed: 5.12.0]
- inflection [required: >=0.3.0, installed: 0.5.1]
- packaging [required: >=21.3,<22.0, installed: 21.3]
- pyparsing [required: >=2.0.2,!=3.0.5, installed: 3.0.9]
- PyYAML [required: >=5.3.0, installed: 6.0]
pythonnet==3.0.1
- clr-loader [required: >=0.2.2,<0.3.0, installed: 0.2.5]
- cffi [required: >=1.13, installed: 1.15.1]
- pycparser [required: Any, installed: 2.21]
PS C:\Users\ericfoss\temp> pipenv run python
Python 3.10.6 (tags/v3.10.6:9c7b4bd, Aug 1 2022, 21:53:49) [MSC v.1932 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import clr
Failed to initialize pythonnet: System.NullReferenceException: Object reference not set to an instance of an object.
at Python.Runtime.PythonException.TryDecodePyErr(BorrowedReference typeRef, BorrowedReference valRef, BorrowedReference tbRef)
at Python.Runtime.PythonException.FetchCurrentOrNull(ExceptionDispatchInfo& dispatchInfo)
at Python.Runtime.PythonException.ThrowLastAsClrException()
at Python.Runtime.ImportHook.SetupImportHook()
at Python.Runtime.ImportHook.Initialize()
at Python.Runtime.Runtime.Initialize(Boolean initSigs)
at Python.Runtime.PythonEngine.Initialize(IEnumerable`1 args, Boolean setSysArgv, Boolean initSigs)
at Python.Runtime.PythonEngine.InitExt()
at Python.Runtime.Loader.Initialize(IntPtr data, Int32 size)
at Python.Runtime.PythonException.TryDecodePyErr(BorrowedReference typeRef, BorrowedReference valRef, BorrowedReference tbRef)
at Python.Runtime.PythonException.FetchCurrentOrNull(ExceptionDispatchInfo& dispatchInfo)
at Python.Runtime.PythonException.ThrowLastAsClrException()
at Python.Runtime.ImportHook.SetupImportHook()
at Python.Runtime.ImportHook.Initialize()
at Python.Runtime.Runtime.Initialize(Boolean initSigs)
at Python.Runtime.PythonEngine.Initialize(IEnumerable`1 args, Boolean setSysArgv, Boolean initSigs)
at Python.Runtime.PythonEngine.InitExt()
at Python.Runtime.Loader.Initialize(IntPtr data, Int32 size)Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
File "C:\Users\ericfoss\temp\.venv\lib\site-packages\appmap\wrapt\wrappers.py", line 581, in __call__
return self._self_wrapper(self.__wrapped__, instance,
File "C:\Users\ericfoss\temp\.venv\lib\site-packages\_appmap\importer.py", line 231, in wrapped_exec_module
exec_module(*args, **kwargs)
File "C:\Users\ericfoss\temp\.venv\lib\site-packages\clr.py", line 6, in <module>
load()
File "C:\Users\ericfoss\temp\.venv\lib\site-packages\pythonnet\__init__.py", line 144, in load
raise RuntimeError("Failed to initialize Python.Runtime.dll")
RuntimeError: Failed to initialize Python.Runtime.dll
>>>
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the failure with the shown Pipenv environment by running Python and importing clr. Start with appmap/wrapt/wrappers.py and _appmap/importer.py, then inspect the clr.py and pythonnet initialization shown in the traceback. Done means importing clr succeeds while AppMap is installed and enabled.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- tooling
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100