在 windows 中安装 anaconda3 后,我可以从 anaconda 提示符运行 python 命令,但不能从 windows 命令提示符运行。我想创建一个桌面快捷方式来激活我的环境并从中运行 spyder。以前,我会使用 .bat
文件执行此操作,但现在我无法从 cmd.exe
运行 python 命令,这不起作用。
是否有另一种方法可以为 anaconda 提示符运行批处理文件?我知道我可以修改我的 PATH
以让 cmd.exe
运行 python 命令,但如果可能的话,我想避免这种情况。
<anaconda_dir>/Scripts/activate.bat <anaconda_dir>
作为第一个命令,因此您可以尝试将其放在脚本的顶部。
我相信 Anaconda 提示符所做的只是打开 CMD 并运行一个批处理文件。制作脚本的第一个命令:
call <anaconda_dir>/Scripts/activate.bat <anaconda_dir>
扩展杰里米的答案:
对于“activate.bat”脚本以及任何后续的 Anaconda/Python 相关命令,您确实需要使用 call
。否则运行命令后提示将立即退出,即使您使用 pause
语句。请看下面的例子:
set root=C:\Users\john.doe\AppData\Local\Continuum\anaconda3
call %root%\Scripts\activate.bat %root%
call conda list pandas
pause
多亏了这个线程,我解决了获取 Windows 批处理文件以打开 Ananconda Prompt 然后运行一些 python 代码的挑战。
这是批处理文件:
@echo on
call C:\ProgramData\Anaconda3\Scripts\activate.bat
C:\ProgramData\Anaconda3\python.exe "D:\Documents\PythonCode\TFLAPI\V1.py"
添加
call "<anaconda_dir>\Scripts\activate.bat"
到脚本的开头(它实际上不需要参数,默认情况下会激活 base
环境)。
请注意,在此行之后,您可以使用 CONDA_
环境变量!
对于 Windows,请在批处理文件中使用以下脚本来执行 Python 脚本。只需像这样更改您的个人文件路径:
cmd /c C:\ProgramData\Anaconda3\condabin\conda.bat run "C:\ProgramData\Anaconda3\python.exe" "C:\Users\User Name\Path to your Python File\Python File.py"
电源外壳版本:
$qtconsole="C:\Users\<YourUserName>\.anaconda\navigator\scripts\qtconsole.bat"
start-process $qtconsole -WindowStyle Hidden
注意:由于 Linux QT GUI 库的 DLL 限制,此脚本一次只能启动一个 qtconsole 实例,只支持同时运行的同一 exe 的一个实例。这可能就是为什么他们使用“Anaconda Navigator”来启动 QtConsole 程序来绕过这个限制。
扩展@N4v 答案,因为这是我调用 Python 脚本的唯一方法。 Python版本是3.7
set root=C:\Users\xxxx\Anaconda3 #Anaconda default folder on my computer
set env1=C:\Users\xxxx\Anaconda3\envs\py37 #My Python environment folder. The name I gave is py37. Can be specific to yours
call %root%\Scripts\activate.bat %env1% #Call command to activate py37 environment.
python "C:\Path to the folder with python file\Pythonfile.py" #Run the file of interest after running python specific to the called environment. Replace this with your files path and name.
pause
根据@ivan_pozdeev 的回答,我发现以下对我来说是最干净的解决方案:
@ECHO OFF
CALL "<anaconda_dir>\Scripts\activate.bat" [<conda_environment_if_not_base>]
%CONDA_PYTHON_EXE% "<full_path_to_your_python_script>" %1 %2 %3 %4 %5 %6 %7 %8 %9
conda deactivate
例如:
@ECHO OFF
CALL "E:\ProgramData\Anaconda3\Scripts\activate.bat"
%CONDA_PYTHON_EXE% "C:\Users\<user>\Documents\Python3\my_project\src\my_script.py" %1 %2 %3 %4 %5 %6 %7 %8 %9
conda deactivate
通过在批处理文件的末尾包含 conda deactivate
,您可以使命令行保持您开始的状态。如果您需要不同的 conda 环境,您可以在 activate.bat
之后指定它。
通过 .bat 执行 anaconda 脚本的最简单方法
set venv=name_of_virtual_env
call %USERPROFILE%\Anaconda3\Scripts\activate %USERPROFILE%\Anaconda3
call activate %venv%
:: Change directory to the relative path that's needed for script
cd %~dp0
:: Run script at this location
call %USERPROFILE%/Anaconda3/envs/%venv%/python.exe "%~dp0\main.py"
PAUSE
%USERPROFILE% == C:\Users\name
%~dp == C:\Users\name\path\to\Project\RUN.bat
"%~dp0\main.py" == 运行目标脚本的路径
不定期副业成功案例分享
call
,所以它不会在第一个命令后退出?call
我的提示也会关闭,我在文件末尾添加了cmd /k