基于传入的python版本,判断工具是否可用 :param tool_name: 工具名称 :param python_version: "2", "3" :param with_version: python是否带上版本号,如python3 :return:
(tool_name, python_version="3", with_version=False)
| 106 | |
| 107 | @staticmethod |
| 108 | def is_python_available(tool_name, python_version="3", with_version=False): |
| 109 | """ |
| 110 | 基于传入的python版本,判断工具是否可用 |
| 111 | :param tool_name: 工具名称 |
| 112 | :param python_version: "2", "3" |
| 113 | :param with_version: python是否带上版本号,如python3 |
| 114 | :return: |
| 115 | """ |
| 116 | python_cmd = "python" |
| 117 | if with_version: |
| 118 | python_cmd += str(python_version) |
| 119 | |
| 120 | if PythonTool.is_local_python_command_available(python_cmd, python_version): |
| 121 | # 本地Python环境可用,接下来判断是否安装pylint |
| 122 | cmd_args = [python_cmd, "-m", tool_name, "--version"] |
| 123 | LogPrinter.info(f'run cmd: {cmd_args}') |
| 124 | if SubProcController(cmd_args, |
| 125 | stdout_line_callback=LogPrinter.info, |
| 126 | stderr_line_callback=LogPrinter.info).wait() != 0: |
| 127 | if tool_name == "flake8": |
| 128 | message = "建议客户本地安装flake8工具,安装命令:pip install flake8 && pip install flake8-json" |
| 129 | else: |
| 130 | message = f"建议客户本地安装{tool_name}工具,安装命令:pip install {tool_name}" |
| 131 | LogPrinter.info(message) |
| 132 | else: |
| 133 | # 本地pylint环境可用 |
| 134 | return True |
| 135 | return False |
| 136 | |
| 137 | @staticmethod |
| 138 | def add_python_env(tool_name): |
no test coverage detected