How to use setx command in a windows batch file

前端 未结 4 947
轻奢々
轻奢々 2021-02-09 10:05

I am trying to create a windows batch file to automatically set the environment variable to use python 2.4 or python 3.3.

Both python 2.4 and 3.3 are installed on my sys

4条回答
  •  后悔当初
    2021-02-09 10:22

    I really like this way

    here's the batch script:

    @setlocal enableextensions enabledelayedexpansion
    @echo off
    set str1=%PYCURRENTPATHS%
    
    if not "x%str1:python2=%" == "x%str1%"  (
        set PYCURRENTPATHS=%PY3PATHS%
    ) else (
        set PYCURRENTPATHS=%PY2PATHS%
    ) 
    setx PYCURRENTPATHS %PYCURRENTPATHS%
    set PATH=%PATH%
    endlocal
    

    we'll need 3 variables : (use "set" to set current terminal, use "setx" to set persistent variable)

    set PY2PATHS=D:\ProgramData\Anaconda3\env\python2;D:\ProgramData\Anaconda3\env\python2\Scripts
    set PY3PATHS=D:\ProgramData\Anaconda3;D:\ProgramData\Anaconda3\Scripts
    setx PY2PATHS %PY2PATHS%
    setx PY3PATHS %PY3PATHS%
    setx PYCURRENTPATHS %PY2PATHS%
    

    And add "%PYCURRENTPATHS%" to your path via GUI:

    This example uses anaconda and python2 setup from this example: conda create -n python2 python=2.7 anaconda

    So for ultra painless Windows python, I can't recommend the following solution enough. Please give it a try I think you'll like it.

    1) use Anaconda (start with python 3 for this example)... for the longest time I resisted and had better luck with manual installs/management of python, but due to network issues, I was forced to use Anaconda (didn't want to allow pip url on network :( )

    2) install python2 from anaconda prompt: conda create -n python2 python=2.7 anaconda

    3) create the script above to make your python installs available to command line (e.g. add to path)

    You can add more virtual python environments, set them in the command line or enhance this script as well (eg PY2Tensor, Py3Scikit, etc.) or simply manage them via conda :)

    Anaconda benefits from pre-compiled packages. No package mismatches, unstable releases, legacy issues or broken dependencies.

    I still prefer Linux for development, but if you have to use windows and python, it's gotten better.

    Note: set PATH=%PATH% causes re-eval of "PATH" + "%PYCURRENTPATHS%" in current session, a new session will reflect the change without this line

提交回复
热议问题