mlflow / mlp-regression-template

Example repo to kickstart integration with mlflow pipelines.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Error while executing pipeline ingest in local

parvez-golam opened this issue · comments

Hi,

I am trying to run the mlflow pipeline. Currently facing an issue with p.run("ingest") in my local machine using the jupyter notebook.
The following error is occurring:
FileNotFoundError: [WinError 2] The system cannot find the file specified.

Appreciate your help to resolve this problem.

Below is the stack trace:

FileNotFoundError Traceback (most recent call last)
Input In [6], in <cell line: 1>()
----> 1 p.run("ingest")

File ~\AppData\Roaming\Python\Python39\site-packages\mlflow\pipelines\regression\v1\pipeline.py:337, in RegressionPipeline.run(self, step)
272 def run(self, step: str = None) -> None:
273 """
274 Runs the full pipeline or a particular pipeline step, producing outputs and displaying a
275 summary of results upon completion. Step outputs are cached from previous executions, and
(...)
335 regression_pipeline.run()
336 """
--> 337 return super().run(step=step)

File ~\AppData\Roaming\Python\Python39\site-packages\mlflow\pipelines\pipeline.py:75, in _BasePipeline.run(self, step)
72 # TODO Record performance here.
73 # Always resolve the steps to load latest step modules before execution.
74 self._steps = self._resolve_pipeline_steps()
---> 75 last_executed_step = run_pipeline_step(
76 self._pipeline_root_path,
77 self._steps,
78 # Runs the last step of the pipeline if no step is specified.
79 self._get_step(step) if step else self._steps[-1],
80 )
82 self.inspect(last_executed_step.name)
84 # Verify that the step execution succeeded and throw if it didn't.

File ~\AppData\Roaming\Python\Python39\site-packages\mlflow\pipelines\utils\execution.py:71, in run_pipeline_step(pipeline_root_path, pipeline_steps, target_step)
69 make_env.update(step.environment)
70 # Use Make to run the target step and all of its dependencies
---> 71 _run_make(
72 execution_directory_path=execution_dir_path,
73 rule_name=target_step.name,
74 extra_env=make_env,
75 )
77 # Identify the last step that was executed, excluding steps that are downstream of the
78 # specified target step
79 last_executed_step = pipeline_steps[0]

File ~\AppData\Roaming\Python\Python39\site-packages\mlflow\pipelines\utils\execution.py:278, in _run_make(execution_directory_path, rule_name, extra_env)
267 def _run_make(execution_directory_path, rule_name: str, extra_env: Dict[str, str]) -> None:
268 """
269 Runs the specified pipeline rule with Make. This method assumes that a Makefile named Makefile
270 exists in the specified execution directory.
(...)
276 :param rule_name: The name of the Make rule to run.
277 """
--> 278 _exec_cmd(
279 ["make", "-s", "-f", "Makefile", rule_name],
280 capture_output=False,
281 stream_output=True,
282 synchronous=True,
283 throw_on_error=False,
284 cwd=execution_directory_path,
285 extra_env=extra_env,
286 )

File ~\AppData\Roaming\Python\Python39\site-packages\mlflow\utils\process.py:94, in _exec_cmd(cmd, throw_on_error, extra_env, capture_output, synchronous, stream_output, **kwargs)
88 elif stream_output:
89 # Redirect stderr to stdout in order to combine the streams for unified printing to
90 # sys.stdout, as documented in
91 # https://docs.python.org/3/library/subprocess.html#subprocess.run
92 kwargs["stderr"] = subprocess.STDOUT
---> 94 process = subprocess.Popen(
95 cmd,
96 env=env,
97 text=True,
98 **kwargs,
99 )
100 if not synchronous:
101 return process

File ~\anaconda3\envs\py39\lib\subprocess.py:951, in Popen.init(self, args, bufsize, executable, stdin, stdout, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags, restore_signals, start_new_session, pass_fds, user, group, extra_groups, encoding, errors, text, umask)
947 if self.text_mode:
948 self.stderr = io.TextIOWrapper(self.stderr,
949 encoding=encoding, errors=errors)
--> 951 self._execute_child(args, executable, preexec_fn, close_fds,
952 pass_fds, cwd, env,
953 startupinfo, creationflags, shell,
954 p2cread, p2cwrite,
955 c2pread, c2pwrite,
956 errread, errwrite,
957 restore_signals,
958 gid, gids, uid, umask,
959 start_new_session)
960 except:
961 # Cleanup if the child failed starting.
962 for f in filter(None, (self.stdin, self.stdout, self.stderr)):

File ~\anaconda3\envs\py39\lib\subprocess.py:1420, in Popen._execute_child(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, unused_restore_signals, unused_gid, unused_gids, unused_uid, unused_umask, unused_start_new_session)
1418 # Start the process
1419 try:
-> 1420 hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
1421 # no special security
1422 None, None,
1423 int(not close_fds),
1424 creationflags,
1425 env,
1426 cwd,
1427 startupinfo)
1428 finally:
1429 # Child is launched. Close the parent's copy of those pipe
1430 # handles that only the child should have open. You need
(...)
1433 # pipe will not close when the child process exits and the
1434 # ReadFile will hang.
1435 self._close_pipe_fds(p2cread, p2cwrite,
1436 c2pread, c2pwrite,
1437 errread, errwrite)

FileNotFoundError: [WinError 2] The system cannot find the file specified

Hi @parvez-golam, Thank you for reporting the issue. I think there was a similar issue that was reported earlier. It seems like installing make solves this issue. Can you give that a try? Let us know if you find more issues. Thank you.

Thank you @sunishsheth2009 ! It's working after installation of make.