使用批处理文件激活Anaconda中的python 3环境

时间:2014-03-05 15:54:08

标签: cmd anaconda

最近在win7上为我的python项目安装了Anaconda(1.9)

安装完成后,我使用this page中的说明构建了一个python 3支持环境。我的下一个任务是使用内置批处理文件自动激活我的python环境。

我在开始菜单中找到的[Anaconda命令提示符]快捷方式中使用了该命令。它运行名为[ anaconda.bat ]

的批处理文件

在观察批处理文件后,我意识到它似乎能够获取一个应该是我想激活的环境的输入参数。所以我复制了快捷方式并将其修改为

C:\Windows\System32\cmd.exe /k "C:\Anaconda\Scripts\anaconda.bat py3k"

然后我双击新的快捷方式,它打开了一个新的命令窗口但是......指定的环境没有激活!

@echo off

rem +===========================================================================
rem | Initialisation
rem +===========================================================================
verify bogus-argument 2>nul
setlocal enableextensions enabledelayedexpansion
if ERRORLEVEL 1 (
    echo error: unable to enable command extensions
    goto :eof
)

for %%i in ("%~dp0..\envs") do (
    set ANACONDA_ENVS=%%~fi
)

if not "%1" == "" (
    if not exist "%ANACONDA_ENVS%\%1\python.exe" (
        echo No environment named "%1" exists in %ANACONDA_ENVS%
        goto :eof
    )
    set ANACONDA_ENV_NAME=%1
    set ANACONDA=%ANACONDA_ENVS%\%1
    title Anaconda (%ANACONDA_ENV_NAME%^)
) else (
    set ANACONDA_ENV_NAME=
    for %%i in ("%~dp0..") do (
        set ANACONDA=%%~fi
    )
    title Anaconda
)

set ANACONDA_SCRIPTS=%ANACONDA%\Scripts

for %%i in ("python.exe") do (
    for %%j in ("%ANACONDA%\python.exe") do (
        if not "%%~f$PATH:i" == "%%~f$PATH:j" (
            set ANACONDA_OLD_PATH="%PATH%"
            set PATH=%ANACONDA%;%ANACONDA_SCRIPTS%;%PATH%;
            echo Added %ANACONDA% and %ANACONDA_SCRIPTS% to PATH.
        )
    )
)

if not "%ANACONDA_ENV_NAME%" == "" (
    echo Activating environment %ANACONDA_ENV_NAME%...
    set PROMPT=[%ANACONDA_ENV_NAME%] $P$G
)

我对蝙蝠语言的经验很少,但我想这可能与这行有关

setlocal enableextensions enabledelayedexpansion

我试图删除该行,但仍然将ERRORLEVEL 1表达式与消息一起捕获。

error: unable to enable command extensions

任何人都可以建议我应该做些什么来使这个bat文件正常工作?

1 个答案:

答案 0 :(得分:4)

我认为您不需要批处理文件。假设Anaconda和CMD在你的道路上(他们应该是这样),你可以尝试这个作为替代方案(这是我做的):

cmd "/c activate py3k && ipython --pylab"