首页 > 解决方案 > 如何记录用于在 Windows 10 上激活 Anaconda“基础”环境的 activate.bat 文件的完整调用历史记录和执行历史记录?

问题描述

activate.bat当我激活 Anaconda“基础”环境时,如何将完整的调用历史和执行历史记录到文件的日志文件(在 Windows 10 上) ?

我在 Windows 10 Professional 上使用常规的 Window 命令控制台(不是 PowerShell)。

每当我使用 DOS shell 中的 conda activate' 返回我的 conda 基本环境activate' or 时,我都会看到 3 个屏幕,其中充满了我还无法消除的 Windows 批处理 shell 错误。每当我activate base返回使用 Anaconda 基础安装的 conda 环境时,就会发生这种情况。我的任何其他 10-12 conda 虚拟环境都不会发生这种情况。我不想删除并重新安装 Anaconda 或备份并重建我所有的 conda 环境。

activate当批处理文件命令运行 时,我需要跟踪 conda 在 Windows 上使用的所有批处理文件的历史记录。activate.bat启动一长串嵌套的批处理文件调用,这些调用很难解开。activate.bat 是一个小文件,它调用 conda_hook.bat,它调用 conda.bat,它调用 activate,它调用另一个 conda.bat,它有 35 行 if-then-else 逻辑,可以更改文件路径等等。我只知道非常基本的 Windows shell 脚本命令,所以 conda.bat 脚本看起来很神秘。

我想消除导致 Visual Studio 错误消息的问题。但是,我正在寻找一个通用的解决方案(对于 WINDOWS 10,而不是 *NIX),这样我将来可以解决这样的问题。我需要一个通用(免费)解决方案来捕获嵌套脚本的历史并将其跟踪到日志文件中,并准确查看脚本在做什么。

这是输出:

>     C:\WINDOWS\system32>SET DISTUTILS_USE_SDK=1
> 
> C:\WINDOWS\system32>SET MSSdk=1
> 
> C:\WINDOWS\system32>SET "VS_VERSION=15.0"
> 
> C:\WINDOWS\system32>SET "VS_MAJOR=15"
> 
> C:\WINDOWS\system32>SET "VS_YEAR=2017"
> 
> C:\WINDOWS\system32>set "MSYS2_ARG_CONV_EXCL=/AI;/AL;/OUT;/out"
> 
> C:\WINDOWS\system32>set "MSYS2_ENV_CONV_EXCL=CL"
> 
> C:\WINDOWS\system32>set "PY_VCRUNTIME_REDIST=\bin\vcruntime140.dll"
> 
> C:\WINDOWS\system32>set "CXX=cl.exe"
> 
> C:\WINDOWS\system32>set "CC=cl.exe"
> 
> C:\WINDOWS\system32>CALL
> C:\ProgramData\Anaconda3\etc\conda\activate.d\vs2017_get_vsinstall_dir.bat
> Did not find VSINSTALLDIR Windows SDK version found as: "10.0.19041.0"
> The system cannot find the path specified. Did not find VSINSTALLDIR
> 
> C:\WINDOWS\system32>SET DISTUTILS_USE_SDK=1
> 
> C:\WINDOWS\system32>SET MSSdk=1
> 
> C:\WINDOWS\system32>SET "VS_VERSION=16.0"
> 
> C:\WINDOWS\system32>SET "VS_MAJOR=16"
> 
> C:\WINDOWS\system32>SET "VS_YEAR=2019"
> 
> C:\WINDOWS\system32>set "MSYS2_ARG_CONV_EXCL=/AI;/AL;/OUT;/out"
> 
> C:\WINDOWS\system32>set "MSYS2_ENV_CONV_EXCL=CL"
> 
> C:\WINDOWS\system32>set "PY_VCRUNTIME_REDIST=\bin\vcruntime140.dll"
> 
> C:\WINDOWS\system32>set "CXX=cl.exe"
> 
> C:\WINDOWS\system32>set "CC=cl.exe"
> 
> C:\WINDOWS\system32>set "VSINSTALLDIR="
> 
> C:\WINDOWS\system32>for /F "usebackq tokens=*" %i in (`vswhere.exe
> -nologo -products * -version [16.0,17.0) -property installationPath`) do (set "VSINSTALLDIR=%i\" )
> 
> C:\WINDOWS\system32>(set "VSINSTALLDIR=C:\Program Files
> (x86)\Microsoft Visual Studio\2019\BuildTools\" )
> 
> C:\WINDOWS\system32>(set "VSINSTALLDIR=C:\Program Files
> (x86)\Microsoft Visual Studio\2019\Community\" )
> 
> C:\WINDOWS\system32>if not exist "C:\Program Files (x86)\Microsoft
> Visual Studio\2019\Community\" (for /F "usebackq tokens=*" %i in
> (`vswhere.exe -nologo -products * -requires
> Microsoft.VisualStudio.Component.VC.v142.x86.x64 -property
> installationPath`) do (set "VSINSTALLDIR=%i\" ) )
> 
> C:\WINDOWS\system32>if not exist "C:\Program Files (x86)\Microsoft
> Visual Studio\2019\Community\" (set "VSINSTALLDIR=C:\Program Files
> (x86)\Microsoft Visual Studio\2019\Professional\" )
> 
> C:\WINDOWS\system32>if not exist "C:\Program Files (x86)\Microsoft
> Visual Studio\2019\Community\" (set "VSINSTALLDIR=C:\Program Files
> (x86)\Microsoft Visual Studio\2019\Community\" )
> 
> C:\WINDOWS\system32>if not exist "C:\Program Files (x86)\Microsoft
> Visual Studio\2019\Community\" (set "VSINSTALLDIR=C:\Program Files
> (x86)\Microsoft Visual Studio\2019\BuildTools\" )
> 
> C:\WINDOWS\system32>if not exist "C:\Program Files (x86)\Microsoft
> Visual Studio\2019\Community\" (set "VSINSTALLDIR=C:\Program Files
> (x86)\Microsoft Visual Studio\2019\Enterprise\" )
> 
> C:\WINDOWS\system32>IF NOT "" == "" ( set "INCLUDE=;"  set "LIB=;" 
> set "CMAKE_PREFIX_PATH=;" )
> 
> C:\WINDOWS\system32>call :GetWin10SdkDir
> 
> C:\WINDOWS\system32>call :GetWin10SdkDirHelper
> HKLM\SOFTWARE\Wow6432Node  1>nul 2>&1
> 
> C:\WINDOWS\system32>if errorlevel 1 call :GetWin10SdkDirHelper
> HKCU\SOFTWARE\Wow6432Node  1>nul 2>&1
> 
> C:\WINDOWS\system32>if errorlevel 1 call :GetWin10SdkDirHelper
> HKLM\SOFTWARE  1>nul 2>&1
> 
> C:\WINDOWS\system32>if errorlevel 1 call :GetWin10SdkDirHelper
> HKCU\SOFTWARE  1>nul 2>&1
> 
> C:\WINDOWS\system32>if errorlevel 1 exit /B 1
> 
> C:\WINDOWS\system32>exit /B 0
> 
> C:\WINDOWS\system32>for /F %i in ('dir /ON /B "C:\Program Files
> (x86)\Windows Kits\10\\include\10.*"') DO (SET WindowsSDKVer=%~i )
> 
> C:\WINDOWS\system32>(SET WindowsSDKVer=10.0.10240.0 )
> 
> C:\WINDOWS\system32>(SET WindowsSDKVer=10.0.18362.0 )
> 
> C:\WINDOWS\system32>(SET WindowsSDKVer=10.0.19041.0 )
> 
> C:\WINDOWS\system32>if errorlevel 1 (echo "Didn't find any windows 10
> SDK. I'm not sure if things will work, but let's try..." )  else (echo
> Windows SDK version found as: "10.0.19041.0" ) Windows SDK version
> found as: "10.0.19041.0"
> 
> C:\WINDOWS\system32>IF 2019 GEQ 2019 ( set "CMAKE_GEN=Visual Studio 16
> 2019"  IF "win-64" == "win-64" ( set "BITS=64"  set "CMAKE_PLAT=x64" )
> ELSE ( set "BITS=32"  set "CMAKE_PLAT=Win32" ) )  ELSE (IF "win-64" ==
> "win-64" ( set "CMAKE_GEN=Visual Studio 16 2019 Win64"  set "BITS=64"
> )  else ( set "CMAKE_GEN=Visual Studio 16 2019"  set "BITS=32" ) )
> 
> C:\WINDOWS\system32>pushd C:\Program Files (x86)\Microsoft Visual
> Studio\2019\Community\
> 
> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community>CALL
> "VC\Auxiliary\Build\vcvars64.bat" -vcvars_ver=14.29 10.0.19041.0
> **********************************************************************
> ** Visual Studio 2019 Developer Command Prompt v16.9.4
> ** Copyright (c) 2021 Microsoft Corporation
> ********************************************************************** [ERROR:vcvars.bat] Toolset directory for version '14.29' was not
> found. [ERROR:VsDevCmd.bat] *** VsDevCmd.bat encountered errors.
> Environment may be incomplete and/or incorrect. ***
> [ERROR:VsDevCmd.bat] In an uninitialized command prompt, please 'set
> VSCMD_DEBUG=[value]' and then re-run [ERROR:VsDevCmd.bat] vsdevcmd.bat
> [args] for additional details. [ERROR:VsDevCmd.bat] Where [value] is:
> [ERROR:VsDevCmd.bat]    1 : basic debug logging [ERROR:VsDevCmd.bat]  
> 2 : detailed debug logging [ERROR:VsDevCmd.bat]    3 : trace level
> logging. Redirection of output to a file when using this level is
> recommended. [ERROR:VsDevCmd.bat] Example: set VSCMD_DEBUG=3
> [ERROR:VsDevCmd.bat]          vsdevcmd.bat > vsdevcmd.trace.txt 2>&1
> 
> (base) C:\Windows\System32>

标签: pythonwindowsanacondaconda

解决方案


推荐阅读