I recently had a problem when adding a new library to my existing RF setup (VsCode / Robot Framework) 2 of my existing libraries no longer worked, it would appear that the new library overwrote some files that the old libraries required. How do I prevent this problem in the future, I can freeze etc but don’t think this helps. I hear talk of virtual environment but surely this would still get overwritten with requirements that maybe needed for the new library.
Hi Alan,
Libraries can have keywords with the same names, so you should be aware of how robot handles keywords with same names
-
You can specify all keywords explicitly, by using <library name>.<keyword name> or
-
You can change the order of the library import to give priority to the libraries who’s keywords you want to use without specifying the keyword explicitly, and then only specify keywords explicitly for the new library
A library shouldn’t stop another library working at all, if that’s the case it would be helpful to know which library you installed and which libraries it broke?
Hope this helps,
Dave.
Hi Dave
Thank you for your reply.
When I first started using RF I had a problem with multiple keywords with the same eg every library has a click keyword. I use VS with the Robot Framework Language Server ext and in early versions of this it wouldn’t correctly handle the library name prior to the keyword, this is now resolved.
I pip installed RPA.Assistant and this broke “ApplicationLibrary.DesktopLibrary” and “RPA.Windows”
ApplicationLibrary.DesktopLibrary
Unfortunately I no longer have access to the error message from ApplicationLibrary.DesktopLibrary however it was something similair to can’t find keyword xxxxx. I believe the problem related to the fact that the RPA.Assistant installed a different version of selenium which affected ApplicationLibrary>DesktopLibrary.
RPA.Windows
"Error in file ‘C:\RobotFramework\Tests\xxxxx.robot’ on line 21: Importing library ‘RPA.Windows’ failed: ImportError: cannot import name ‘is_numeric’ from ‘RPA.core.windows.helpers’ (c:\users\administrator\appdata\local\programs\python\python39\lib\site-packages\RPA\core\windows\helpers.py)
Traceback (most recent call last):
File “c:\users\administrator\appdata\local\programs\python\python39\lib\site-packages\RPA\Windows_init _.py”, line 8, in
from . import utils
File “c:\users\administrator\appdata\local\programs\python\python39\lib\site-packages\RPA\Windows\utils.py”, line 4, in
from RPA.core.windows.helpers import ( # noqa: F401
I have now managed to get things sorted by pip re-installing the affected libraries but I am concerned how to manage this going forward. I had wanted to try a feature within RPA.Assistant.
Alan
Hi Alan,
I’m not familiar with the Robocorp RPA libraries, I guess since it’s one of their libraries you had the issue with you might want to check on their forum (https://forum.robocorp.com/) maybe they can give some advice on how to avoid this issue.
Dave.
I would take a look at poetry or PDM to manage and lock your dependencies. I’ve done a talk on the topic and created a demo repo that may be useful to you:
RoboCon 2022 - 1.08 Project and package management: Poetry for robots - YouTube
Thanks for your reply, I’ll take a look