Hi SkinnyPanda43 ,
Can you please add a log of the failure? I think if you add specific requirements manually it should override auto detection
Follows the failure part of the log:
` Requirement already satisfied: pip in /root/.clearml/venvs-builds/3.1/lib/python3.10/site-packages (22.2.2)
Collecting Cython
Using cached Cython-0.29.32-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl (1.9 MB)
Installing collected packages: Cython
Successfully installed Cython-0.29.32
Collecting boto3==1.24.59
Using cached boto3-1.24.59-py3-none-any.whl (132 kB)
ERROR: Could not find a version that satisfies the requirement rmdatasets==0.0.1 (from versions: none)
ERROR: No matching distribution found for rmdatasets==0.0.1
clearml_agent: ERROR: Could not install task requirements!
Command '['/root/.clearml/venvs-builds/3.1/bin/python', '-m', 'pip', '--disable-pip-version-check', 'install', '-r', '/tmp/cached-reqsfuwxoren.txt']' returned non-zero exit status 1.
2022-09-18 19:59:20
Process failed, exit code 1 `
How the dependencies are displayed:
` # Python 3.10.6 (main, Aug 18 2022, 15:20:36) [Clang 13.1.6 (clang-1316.0.21.2.5)]
boto3 == 1.24.59
clearml == 1.7.0
rmdatasets == 0.0.1
git+ <user>/rmdatasets `How do requirements should be added manually? Through a requirements.txt file? This way, all requirements will have to be listed in the file, or it works together with the environment introspection?
Hi, sorry for the delay. rmdatasets == 0.0.1 is the name of the local package that lives in the same repo as the training code. Instead of picking the relative path to the package.
As as work around I set the setting to force the use of requirements.txt and I am using this script to generate it:
` import os
import subprocess
output = subprocess.check_output(["pip", "freeze"]).decode()
with open("requirements.txt", "w") as f:
for line in output.split("\n"):
if " @" in line:
line = line.replace(" @", "https://")
f.write(line + "\n") `It works but it is kind of a hack, also I have to remember to run the script when I change the local library.
Another option would be to modify the sys.apth to include the local libs.
but would installinggit+
<user>/rmdatasets
install rmdatasets == 0.0.1
?
Aren’t they redundant?
Yes, but the issue is caused because rmdatasets is installed in the local environments, I needed it installed in order to test the code locally, so it is caught on the package list.
I will probably stop installing the sibling packages and adding them manually to sys.path.
Right, you don’t want ClearML to track that package, but there isn’t much you can do there I believe. I was trying to tackle how to run your code with an agent given those dependencies.
I think that if you clone the experiment, and remove that line in the dependencies sections in the UI you should be able to launch it correctly (as long as your clearml-agent
has the correct permissions)
and btwif "
@" in line: line = line.replace("
@", "https://")
should be the same asline = line.replace("
@", "https://")