@@ -401,16 +401,24 @@ def _install_packages(path, packages):
401401 :param list packages:
402402 A list of packages to be installed via pip.
403403 """
404- bad_packages = ['-i' , ' #' , 'Python==' , 'python-lambda' ]
404+ bad_packages = ['#' , 'Python==' , 'python-lambda' ]
405405 blacklist = re .compile ('|' .join ([re .escape (pack ) for pack in bad_packages ]))
406406 filtered_packages = [pack for pack in packages if not blacklist .search (pack )]
407+ indexes = ['-i' , '--index-url' , '--extra-index-url' ]
407408
409+ extra_args = []
408410 for package in filtered_packages :
409411 if package .startswith ('-e ' ):
410412 package = package .replace ('-e ' , '' )
413+ if any (i in package for i in indexes ):
414+ extra_args .append (package )
415+ continue
411416
412417 print ('Installing {package}' .format (package = package ))
413- subprocess .check_call ([sys .executable , '-m' , 'pip' , 'install' , package , '-t' , path , '--ignore-installed' ])
418+ call = [sys .executable , '-m' , 'pip' , 'install' , package , '-t' , path , '--ignore-installed' ]
419+ if extra_args :
420+ call .extend (extra_args )
421+ subprocess .check_call (call )
414422
415423
416424def pip_install_to_target (path , requirements = None , local_package = None ):
0 commit comments