(self,
venv_name: str,
src_python_bin: str,
ps:str,
call_log: Callable[[str], None] = None)
| 1360 | return True |
| 1361 | |
| 1362 | def create_python_env(self, |
| 1363 | venv_name: str, |
| 1364 | src_python_bin: str, |
| 1365 | ps:str, |
| 1366 | call_log: Callable[[str], None] = None) -> Optional[str]: |
| 1367 | |
| 1368 | if call_log and callable(call_log): |
| 1369 | real_call = call_log |
| 1370 | else: |
| 1371 | real_call = lambda x: None |
| 1372 | |
| 1373 | if not self._is_valid_env_name(venv_name): |
| 1374 | err_msg3 = "虚拟环境名称不合法" |
| 1375 | real_call(err_msg3) |
| 1376 | return err_msg3 |
| 1377 | |
| 1378 | err_msg = "源Python环境不存在" |
| 1379 | if not os.path.exists(src_python_bin): |
| 1380 | real_call(err_msg) |
| 1381 | return err_msg |
| 1382 | src_p = self.get_env_py_path(src_python_bin) |
| 1383 | if not src_p: |
| 1384 | real_call(err_msg) |
| 1385 | return err_msg |
| 1386 | |
| 1387 | if src_p.env_type != "system": |
| 1388 | err_msg2 = "需要使用系统Python环境来创建虚拟环境" |
| 1389 | real_call(err_msg2) |
| 1390 | return err_msg2 |
| 1391 | |
| 1392 | venv_path = "/www/server/pyporject_evn/{}".format(venv_name) |
| 1393 | if call_log and callable(call_log): |
| 1394 | call_log("开始创建虚拟环境") |
| 1395 | return src_p.create_venv_sync(venv_path, ps, call_log) |
| 1396 | else: |
| 1397 | return src_p.create_venv(venv_path, ps) |
| 1398 | |
| 1399 | |
| 1400 | if __name__ == '__main__': |
nothing calls this directly
no test coverage detected