diff --git a/xcli_core/cli_code_exec.py b/xcli_core/cli_code_exec.py index e916a16..b418186 100644 --- a/xcli_core/cli_code_exec.py +++ b/xcli_core/cli_code_exec.py @@ -10,14 +10,9 @@ from colorama import Fore, Style from .config import logger from .sandbox import ( _sandbox_checker, _make_sandbox_worker, _sandbox_work_dir, - _HAS_RESOURCE, _SAFE_WHITELIST, + _HAS_RESOURCE, _SAFE_WHITELIST, _resource_mod, ) -try: - import resource as _resource_mod -except ImportError: - _resource_mod = None - class CodeExecMixin: """代码沙箱执行相关方法""" diff --git a/xcli_core/sandbox.py b/xcli_core/sandbox.py index 043e751..0669d44 100644 --- a/xcli_core/sandbox.py +++ b/xcli_core/sandbox.py @@ -4,9 +4,13 @@ import ast as _ast import re import textwrap as _textwrap import tempfile as _tempfile -import resource as _resource_mod -_HAS_RESOURCE = hasattr(_resource_mod, 'setrlimit') +try: + import resource as _resource_mod + _HAS_RESOURCE = hasattr(_resource_mod, 'setrlimit') +except ImportError: + _resource_mod = None + _HAS_RESOURCE = False _BLOCKED_MODULES = frozenset({ 'os', 'sys', 'subprocess', 'shutil', 'socket', 'pickle',