在 Windows 中安装 anaconda3 后,我可以从 anaconda 提示符运行 python 命令,但不能从 Windows 命令提示符运行。 我想创建一个桌面快捷方式来激活我的环境并从中运行spyder。以前,我会使用
.bat
文件执行此操作,但现在我无法从 cmd.exe
运行 python 命令,这不起作用。
是否有其他方法可以在 anaconda 提示符下运行批处理文件? 我知道我可以修改我的
PATH
来让 cmd.exe
运行 python 命令,但如果可能的话我想避免这种情况。
我相信 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"
通过.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
Powershell 版本:
$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
之后指定。
执行以下步骤:
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