mirror of
https://github.com/clearml/clearml-agent
synced 2025-03-03 10:42:05 +00:00
Fix relative requirements "-e" support by installing from the code's cwd
This commit is contained in:
parent
b1ca90a303
commit
224868c9a4
@ -932,6 +932,7 @@ class Worker(ServiceCommandSection):
|
|||||||
repo_info,
|
repo_info,
|
||||||
requirements_manager=requirements_manager,
|
requirements_manager=requirements_manager,
|
||||||
cached_requirements=requirements,
|
cached_requirements=requirements,
|
||||||
|
cwd=vcs.location if vcs and vcs.location else directory,
|
||||||
)
|
)
|
||||||
freeze = self.freeze_task_environment()
|
freeze = self.freeze_task_environment()
|
||||||
script_dir = directory
|
script_dir = directory
|
||||||
@ -1102,6 +1103,7 @@ class Worker(ServiceCommandSection):
|
|||||||
repo_info,
|
repo_info,
|
||||||
requirements_manager=requirements_manager,
|
requirements_manager=requirements_manager,
|
||||||
cached_requirements=requirements,
|
cached_requirements=requirements,
|
||||||
|
cwd=vcs.location if vcs and vcs.location else directory,
|
||||||
)
|
)
|
||||||
|
|
||||||
# do not update the task packages if we are using conda,
|
# do not update the task packages if we are using conda,
|
||||||
@ -1409,7 +1411,7 @@ class Worker(ServiceCommandSection):
|
|||||||
return None
|
return None
|
||||||
|
|
||||||
def install_requirements(
|
def install_requirements(
|
||||||
self, execution, repo_info, requirements_manager, cached_requirements=None
|
self, execution, repo_info, requirements_manager, cached_requirements=None, cwd=None,
|
||||||
):
|
):
|
||||||
# type: (ExecutionInfo, RepoInfo, RequirementsManager, Optional[dict]) -> None
|
# type: (ExecutionInfo, RepoInfo, RequirementsManager, Optional[dict]) -> None
|
||||||
"""
|
"""
|
||||||
@ -1422,6 +1424,8 @@ class Worker(ServiceCommandSection):
|
|||||||
:param requirements_manager: requirements manager for task
|
:param requirements_manager: requirements manager for task
|
||||||
:param cached_requirements: cached requirements from previous run
|
:param cached_requirements: cached requirements from previous run
|
||||||
"""
|
"""
|
||||||
|
if self.package_api:
|
||||||
|
self.package_api.cwd = cwd
|
||||||
api = self._install_poetry_requirements(repo_info)
|
api = self._install_poetry_requirements(repo_info)
|
||||||
if api:
|
if api:
|
||||||
self.package_api = api
|
self.package_api = api
|
||||||
|
@ -16,6 +16,7 @@ class PackageManager(object):
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
_selected_manager = None
|
_selected_manager = None
|
||||||
|
_cwd = None
|
||||||
|
|
||||||
@abc.abstractproperty
|
@abc.abstractproperty
|
||||||
def bin(self):
|
def bin(self):
|
||||||
@ -97,6 +98,14 @@ class PackageManager(object):
|
|||||||
# this is helpful when we want out of context requirement installations
|
# this is helpful when we want out of context requirement installations
|
||||||
PackageManager._selected_manager = self
|
PackageManager._selected_manager = self
|
||||||
|
|
||||||
|
@property
|
||||||
|
def cwd(self):
|
||||||
|
return self._cwd
|
||||||
|
|
||||||
|
@cwd.setter
|
||||||
|
def cwd(self, value):
|
||||||
|
self._cwd = value
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def out_of_scope_install_package(cls, package_name):
|
def out_of_scope_install_package(cls, package_name):
|
||||||
if PackageManager._selected_manager is not None:
|
if PackageManager._selected_manager is not None:
|
||||||
|
@ -29,7 +29,7 @@ class SystemPip(PackageManager):
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
def install_from_file(self, path):
|
def install_from_file(self, path):
|
||||||
self.run_with_env(('install', '-r', path) + self.install_flags())
|
self.run_with_env(('install', '-r', path) + self.install_flags(), cwd=self.cwd)
|
||||||
|
|
||||||
def install_packages(self, *packages):
|
def install_packages(self, *packages):
|
||||||
self._install(*(packages + self.install_flags()))
|
self._install(*(packages + self.install_flags()))
|
||||||
|
Loading…
Reference in New Issue
Block a user