How can use my exists python in windows OS rather conda.yaml?

i config robot.yaml file like this:


but it doesn’t work !
promote:
PATH entry “C:\Program Files\Python310” seems to be absolute, which makes robot machine dependent.
PATH entry “C:\Program Files\Python310\Scripts” seems to be absolute, which makes robot machine dependent.
so what should i do? thanks

Hi,

What’s the reason for using your own path there and what’s the expected behaviour? rcc was specially designed to correctly build and isolate environments based on your conda.yaml so you can specify the Python interpreter version and required deps (from conda, then pip) directly in there.

And here you can find more on how to use the [PYTHON]PATH entries. They are usually useful for being able to use binaries in the custom path and to import Python modules from other locations not auto-discovered.

Hi,
Thanks for your reply! Because of the company’s security policy, I can’t connect Internet to download Python interpreter by conda.yaml.
And my computer OS is Windows10 rather than Linux,so “Robot YAML configuration format” shows us the example how to configure Python PATH on the Linux,But it‘s not work On Windows.
Can you give me a example how it work on Windows? thanks a lot

I understand, here’s an example robot.yaml setting up custom Python paths on Windows so the interpreter found in there first will be used for the robot run instead.
:warning: The problem is: once you do that, the entire environment you have described by your conda.yaml won’t be used, and that defies the whole purpose of running robots through our tools conventionally and is prone to unexpected behaviour.

Therefore better alternatives for you would be to either:

  • A. Setup Firewall and network proxy requirements (additionally read about Environments and connections) OR
  • B. Export Holotree env from unrestricted machine and import it on the restricted one:
    • rcc ht vars or rcc run → get the initial env built based on conda.yaml
    • rcc env hash conda.yaml → to get the hash of the env (catalog matching)
    • rcc ht export <hash> → produces hololib.zip you put on a secure drive share or USB stick (if allowed)
    • rcc ht import hololib.zip → on the target restricted system, so you get the caching do the work for you (no need to connect to Conda on installing deps)

@jippo Any better ideas/suggestions/corrections here?

Hello,I configure robot.yaml like this:


It got some errors,first it still use Python environment by conda.yaml rather than my specified Python environment in PATH entry, and it also prompts some errors as below:
PATH entry “C:\\Program Files\\Python310\\Scripts” seems to be absolute, which makes robot machine dependent.
PATH entry “C:\\Program Files\\Python310” seems to be absolute, which makes robot machine dependent.

Once I comment ‘condaConfigFile’ entery in the robot.yaml file it gives an error as below:
Unable to resolve interpreter for: d:\robotframework\robottest02\robot.yaml

Hi,

@cosmin’s points on pre-building the environments are on point in a case like this.
Relying on the machine to have the correct Python setup and relying on that no other robot or human installed pip packages have broken that environment is a really brittle setup from our viewpoint.
So still a heavy recommendation for controlling the environments using RCC.

Question on the company security policies:
Are you able to download and install python and run pip installs?

Conda-forge is actually a more secure way of getting python packages than PyPI and our way of isolating the python environments from the OS-level installation also improves the machine-level security.

The process @cosmin guided earlier on Holotree export/import enables you to build the environments on a separate machine that has access. Then you can validate, run virus scanners etc. on the packaged environment before going to production machines.
This is already getting used by some of our customers and is the best way to handle security concerns around dependencies.

BR, Kari

1 Like

Thanks a lot, I will have a try.

1 Like