robocorp / robotframework-lsp

Robocorp extensions for VS Code: Robocorp Code and RFW LSP
https://robocorp.com/docs/developer-tools/visual-studio-code
Apache License 2.0
200 stars 87 forks source link

Import module issue with clr and pythonnet #1055

Open commanderh opened 3 months ago

commanderh commented 3 months ago

Describe the bug I'm getting an error in my resource file when importing py file that has a module called clr in it. The error message is :

Unresolved library: ./hello_world.py.
Error generating libspec:
Importing library 'hello_world' failed: ModuleNotFoundError: No module named 'clr'
Consider adding the needed paths to the "robot.pythonpath" setting
and calling the "Robot Framework: Clear caches and restart" action.

My hunch on this error is because that clr isn't actually detected. I tested this by doing print(clr) after the import statement, and also of the way pythonnet packages clr, and it actually shows it has clr-loader when I run the command pip list. There's also a clr package that exists (https://pypi.org/project/clr/) which I imagine would fix the red issues, but then pythonnet would start having issues running. Picture below:

image

I've gone ahead and added both pythonnet and clr-loader path to my user settings as suggested in the error. Picture below shows that and the file tree for your confirmation. image

To Reproduce Steps to reproduce the behavior:

  1. Create a python file that has import clr, make sure to run the pip install pythonnet
  2. Create a robot file that imports that python file in step 1, and voila. Behold the red errors.

Expected behavior I guess I expect it to not have any errors? 😊

Pictures Picture of errors: image

Versions:

Logs Add the logs obtained when reproducing the issue.

Unresolved library: ./hello_world.py.
Error generating libspec:
Importing library 'hello_world' failed: ModuleNotFoundError: No module named 'clr'
Consider adding the needed paths to the "robot.pythonpath" setting
and calling the "Robot Framework: Clear caches and restart" action.