如何使批处理文件在anaconda提示符下运行

问题描述 投票:0回答:11

在 Windows 中安装 anaconda3 后,我可以从 anaconda 提示符运行 python 命令,但不能从 Windows 命令提示符运行。 我想创建一个桌面快捷方式来激活我的环境并从中运行spyder。以前,我会使用

.bat
文件执行此操作,但现在我无法从
cmd.exe
运行 python 命令,这不起作用。

是否有其他方法可以在 anaconda 提示符下运行批处理文件? 我知道我可以修改我的

PATH
来让
cmd.exe
运行 python 命令,但如果可能的话我想避免这种情况。

windows batch-file cmd anaconda
11个回答
83
投票

我相信 Anaconda 提示符所做的就是打开 CMD 并运行批处理文件。执行脚本的第一个命令:

call <anaconda_dir>/Scripts/activate.bat <anaconda_dir>

47
投票

扩展杰里米的答案:

您确实需要对“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

26
投票

感谢这个线程,我解决了获取 Windows 批处理文件来打开 Ananconda Prompt,然后运行一些 python 代码的挑战。

这是批处理文件:

@echo on
call C:\ProgramData\Anaconda3\Scripts\activate.bat
C:\ProgramData\Anaconda3\python.exe "D:\Documents\PythonCode\TFLAPI\V1.py"

17
投票

添加

call "<anaconda_dir>\Scripts\activate.bat"

到脚本的开头(它实际上不需要参数,并且默认激活

base
环境)。

请注意,在此行之后,您可以使用

CONDA_
环境变量!


6
投票

对于 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"

3
投票

通过.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" == path to run targeted script

1
投票

Powershell 版本:

$qtconsole="C:\Users\<YourUserName>\.anaconda\navigator\scripts\qtconsole.bat"
start-process $qtconsole -WindowStyle Hidden

注意:由于 Linux QT GUI 库的 DLL 限制,该脚本一次仅启动 qtconsole 的一个实例,仅支持同时运行同一 exe 的一个实例。这可能就是为什么他们使用“Anaconda Navigator”来启动 QtConsole 程序来绕过此限制。


0
投票

如果您使用的是 Windows 操作系统,则可以作为上述解决方案的替代方案。你可以使用 git bash

  1. 您需要将

    conda.sh
    的路径添加到
    .bash_profile
    或任何名称,以便能够运行 conda 命令。这是一个例子:

    echo ". C:/Users/user/Anaconda3/etc/profile.d/conda.sh" >> ~/.bash_profile 
    
  2. 运行脚本 =>

    . script.sh

这也是一个不错的选择。

查看thisthis了解更多详情。 希望它能帮助别人:)。


0
投票

扩展@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

0
投票

根据@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
之后指定。


0
投票

执行以下步骤:

call "C:\Users\yourname\anaconda3\condabin\activate.bat"
cd "Your\program\path"
call activate your_env
python main.py
call conda deactivate

参考这篇文章:

https://medium.com/@roddyjaques/how-to-run-anaconda-programs-with-a-bat-file-5f6dd7675508

© www.soinside.com 2019 - 2024. All rights reserved.