getappmap / getappmap/appmap-python

Cannot run appmap with clr package.

Abierto
#231 4 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Lenguaje dominante
Python
Estrellas
104
Forks
17
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

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
>>>

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Reproduce el fallo con el entorno de Pipenv mostrado ejecutando Python e importando clr. Empieza por appmap/wrapt/wrappers.py y _appmap/importer.py; después, inspecciona clr.py y la inicialización de pythonnet que se muestran en el traceback. Se considera completado cuando importar clr funciona correctamente mientras AppMap está instalado y habilitado.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
python
Área
tooling
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
30/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.