mirror of
				https://gitea.com/actions/setup-python.git
				synced 2025-10-31 19:58:55 +08:00 
			
		
		
		
	Add Architecture-Specific PATH Management for Python with --user Flag on Windows (#1122)
* logic to update install oath with --user flg * format update * format update * update * test job to validate --user flag installtion * updated the script * updated the yaml * update the inputs * updated script * update the correct script file name * updated script and yaml * npm run format-check * fix-test failures * path update * check failure fix * updated test * update free threaded version * updated the comments
This commit is contained in:
		
							
								
								
									
										25
									
								
								dist/setup/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										25
									
								
								dist/setup/index.js
									
									
									
									
										vendored
									
									
								
							| @@ -96103,11 +96103,32 @@ function useCpythonVersion(version, architecture, updateEnvironment, checkLatest | ||||
|             if (utils_1.IS_WINDOWS) { | ||||
|                 // Add --user directory
 | ||||
|                 // `installDir` from tool cache should look like $RUNNER_TOOL_CACHE/Python/<semantic version>/x64/
 | ||||
|                 // So if `findLocalTool` succeeded above, we must have a conformant `installDir`
 | ||||
|                 // Extract version details
 | ||||
|                 const version = path.basename(path.dirname(installDir)); | ||||
|                 const major = semver.major(version); | ||||
|                 const minor = semver.minor(version); | ||||
|                 const userScriptsDir = path.join(process.env['APPDATA'] || '', 'Python', `Python${major}${minor}`, 'Scripts'); | ||||
|                 const basePath = process.env['APPDATA'] || ''; | ||||
|                 let versionSuffix = `${major}${minor}`; | ||||
|                 // Append '-32' for x86 architecture if Python version is >= 3.10
 | ||||
|                 if (architecture === 'x86' && | ||||
|                     (major > 3 || (major === 3 && minor >= 10))) { | ||||
|                     versionSuffix += '-32'; | ||||
|                 } | ||||
|                 else if (architecture === 'arm64') { | ||||
|                     versionSuffix += '-arm64'; | ||||
|                 } | ||||
|                 // Append 't' for freethreaded builds
 | ||||
|                 if (freethreaded) { | ||||
|                     versionSuffix += 't'; | ||||
|                     if (architecture === 'x86-freethreaded') { | ||||
|                         versionSuffix += '-32'; | ||||
|                     } | ||||
|                     else if (architecture === 'arm64-freethreaded') { | ||||
|                         versionSuffix += '-arm64'; | ||||
|                     } | ||||
|                 } | ||||
|                 // Add user Scripts path
 | ||||
|                 const userScriptsDir = path.join(basePath, 'Python', `Python${versionSuffix}`, 'Scripts'); | ||||
|                 core.addPath(userScriptsDir); | ||||
|             } | ||||
|             // On Linux and macOS, pip will create the --user directory and add it to PATH as needed.
 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 aparnajyothi-y
					aparnajyothi-y