import contextlib import os import pathlib import sys import tempfile @contextlib.contextmanager def _tmp_path(*args, **kwargs): with tempfile.TemporaryDirectory(*args, **kwargs) as tmp_dir: yield pathlib.Path(tmp_dir) def main(): with _tmp_path() as tmp_path: (tmp_path / "module.py").write_bytes(b"def function():\n return 1\n") sys.path.append(os.fsencode(tmp_path)) import module assert module.function() == 1 if __name__ == "__main__": sys.exit(main())