Closed ngoldbaum closed 1 year ago
When I try to run an example from the docs inside IPython or a regular python REPL, it fails with the following output:
$ ipython Python 3.10.5 (main, Jul 4 2022, 10:24:08) [GCC 11.2.0] Type 'copyright', 'credits' or 'license' for more information IPython 8.4.0 -- An enhanced Interactive Python. Type '?' for help. In [1]: import pyperf ...: import time ...: ...: ...: def func(): ...: time.sleep(0.001) ...: ...: ...: runner = pyperf.Runner() ...: runner.bench_func('sleep', func) Traceback (most recent call last): File "<string>", line 1, in <module> NameError: name 'worker' is not defined --------------------------------------------------------------------------- RuntimeError Traceback (most recent call last) Input In [1], in <cell line: 10>() 6 time.sleep(0.001) 9 runner = pyperf.Runner() ---> 10 runner.bench_func('sleep', func) File ~/.pyenv/versions/3.10.5/lib/python3.10/site-packages/pyperf/_runner.py:537, in Runner.bench_func(self, name, func, *args, **kwargs) 535 task = WorkerProcessTask(self, name, task_func, metadata) 536 task.inner_loops = inner_loops --> 537 result = self._main(task) 539 if self.args.profile: 540 merge_profile_stats(profiler, self.args.profile) File ~/.pyenv/versions/3.10.5/lib/python3.10/site-packages/pyperf/_runner.py:460, in Runner._main(self, task) 458 bench = None 459 else: --> 460 bench = self._manager() 461 except KeyboardInterrupt: 462 what = "Benchmark worker" if args.worker else "Benchmark" File ~/.pyenv/versions/3.10.5/lib/python3.10/site-packages/pyperf/_runner.py:668, in Runner._manager(self) 666 if self.args.verbose and self._worker_task > 0: 667 print() --> 668 bench = Manager(self).create_bench() 669 if not self.args.quiet: 670 print() File ~/.pyenv/versions/3.10.5/lib/python3.10/site-packages/pyperf/_manager.py:232, in Manager.create_bench(self) 229 self.args.warmups = 1 231 while self.nprocess < self.need_nprocess: --> 232 worker_bench, run = self.create_worker_bench() 233 self.display_run(worker_bench, run) 234 self.handle_calibration(run) File ~/.pyenv/versions/3.10.5/lib/python3.10/site-packages/pyperf/_manager.py:131, in Manager.create_worker_bench(self) 130 def create_worker_bench(self): --> 131 suite = self.create_suite() 133 # get the run 134 benchmarks = suite._benchmarks File ~/.pyenv/versions/3.10.5/lib/python3.10/site-packages/pyperf/_manager.py:121, in Manager.create_suite(self) 119 # compute the run 120 if self.next_run == 'loops': --> 121 suite = self.spawn_worker(self.calibrate_loops, 0) 122 elif self.next_run == 'warmups': 123 suite = self.spawn_worker(0, self.calibrate_warmups) File ~/.pyenv/versions/3.10.5/lib/python3.10/site-packages/pyperf/_manager.py:107, in Manager.spawn_worker(self, calibrate_loops, calibrate_warmups) 104 exitcode = proc.wait() 106 if exitcode: --> 107 raise RuntimeError("%s failed with exit code %s" 108 % (cmd[0], exitcode)) 110 return _load_suite_from_pipe(bench_json) RuntimeError: /home/nathan/.pyenv/versions/3.10.5/bin/python3 failed with exit code 1
It runs fine inside of a script though.
oops, this is a repost of #74
When I try to run an example from the docs inside IPython or a regular python REPL, it fails with the following output: