1313import imghdr
1414from posixpath import basename , splitext
1515from os import remove
16- from os .path import join as pathjoin , getsize
16+ from os .path import join as pathjoin , getsize , isdir
1717from io import BytesIO
1818from functools import wraps
1919from base64 import urlsafe_b64decode as b64decode , b64decode as pic64decode
6969 b64size ,
7070)
7171from ._compat import text_type , urlsplit , parse_qs
72+ from config import GLOBAL
7273from threading import Thread
7374from functools import reduce
7475
@@ -673,8 +674,11 @@ def get_upload_method(class_name):
673674
674675
675676def _pip_install (pkg , index = None , upgrade = None ):
676- """使用pip安装模块到用户目录$HOME/.local"""
677+ """使用pip安装模块到指定目标或默认用户目录$HOME/.local"""
678+ tgt = GLOBAL ["HookPkgStorageDir" ]
677679 cmd = [executable , "-m" , "pip" , "install" , "-q" ]
680+ if tgt :
681+ cmd .extend (("-t" , tgt ))
678682 if not is_venv ():
679683 cmd .append ("--user" )
680684 if upgrade :
@@ -700,6 +704,10 @@ def _pip_list(fmt=None, no_fresh=True):
700704 else :
701705 cmd = [executable , "-m" , "pip" , "list" , "--format" , "json" ]
702706 data = json .loads (check_output (cmd ))
707+ tgt = GLOBAL ["HookPkgStorageDir" ]
708+ if tgt and isdir (tgt ):
709+ cmd .extend (("--path" , tgt ))
710+ data .extend (json .loads (check_output (cmd )))
703711 pipe = rc .pipeline ()
704712 pipe .set (key , json .dumps (data ))
705713 pipe .expire (key , 3600 )
0 commit comments