동일한 Windows 컴퓨터에 Python 3.x 및 2.x를 설치할 수 있습니까?


156

Windows를 실행 중이며 명령 줄에서 프로그램을 실행할 때 셸 / OS가 레지스트리 설정에 따라 Python을 자동으로 실행합니다. 동일한 컴퓨터에 2.x 및 3.x 버전의 Python을 설치하면 문제가 발생합니까?

같은 컴퓨터에서 2.x 스크립트를 계속 실행하면서 Python 3을 가지고 놀고 싶습니다.


1
내 배포판 인 Fedora에서는 Python 2.7을 설치 /usr/bin/python하고 Python 3.3을 설치합니다 /usr/bin/python3. Python3의 Pip과 IPython에 다른 이름을 부여합니다. 매우 편리합니다.
대령 패닉

19
@user-정신적으로 나는 당신의 응답에 동의하지만, 나는 그 정신에 의해 여러 번 불타 버렸습니다.
Peter Hanley

여기에 대한 답변은 언제 실행할 파이썬을 선택하는 방법에 관한 것 같습니다. 내 문제는 "이 제품의 다른 버전이 이미 설치되어 있습니다."라는 메시지가 표시되어 설치 프로그램 (3.6.2)이 실행되지 않는 것입니다. 이미 3.6.3이 설치되어 있습니다.
yoyo

답변:


66

공존을위한 공식 솔루션 은 Python 3.3.0 에 포함 된 Windows 용 Python Launcher , PEP 397로 보입니다 . 릴리스 덤프 설치 및 에 발사기 ( 다음과 관련된) 과 각각 스크립트.py.exepyw.exe%SYSTEMROOT%C:\Windowspypyw

새 실행기를 사용하려면 (자신의 연결을 수동으로 설정하지 않고) "확장자 등록"옵션을 활성화 된 상태로 두십시오. 왜 그런지 잘 모르겠지만 내 컴퓨터에서는 Py 2.7을 "기본"(런처의)으로 두었습니다.

명령 행에서 직접 호출하여 스크립트를 실행하면 실행기를 통해 스크립트를 라우팅하고 shebang (있는 경우)을 구문 분석합니다. 런처를 명시 적으로 호출하고 스위치를 사용할 수도 있습니다 py -3 mypy2script.py.

모든 방식의 세방이 작동하는 것 같습니다

  • #!C:\Python33\python.exe
  • #!python3
  • #!/usr/bin/env python3

원치 않는 학대뿐만 아니라

  • #! notepad.exe

"그들"은 pylauncher를 Windows 용 현재 Python 2 배포판과 함께 포함시켜야합니다 (또는 사람들이 사용 가능하고 어디서 구할 수 있는지 더 잘 알도록해야합니다).
martineau

1
어쩌면 파이썬 2 세계에 살고 있다면 큰 문제는 아닙니다.
Nick T

이 런처는 2012 년 중반부터 독립형 프로그램으로 제공되었습니다.
Johnth


1
@ Mooncrater 당신은 어느 것을 사용할 것인지 확인할 수 있습니다 where.exe pip. 파이썬 3 설치 프로그램 pip3은 pip에 대한 별칭을 설치한다고 생각 하지만 py -3 -m pip install requests생각 처럼 할 수도 있습니다 .
Nick T

41

내 설정은 다음과 같습니다.

  1. Windows 설치 프로그램으로 Python 2.7 및 3.4를 모두 설치하십시오 .
  2. C:\Python34(기본 설치 경로)로 이동하여 python.exe를 python3.exe로 변경하십시오.
  3. 포함 할 환경 변수 편집C:\Python27\;C:\Python27\Scripts\;C:\Python34\;C:\Python34\Scripts\;

이제 명령 행 python에서 2.7 및 python33.4에 사용할 수 있습니다 .


3
예를 들어 pipcli에서는 어떻습니까?
Christian

3
python 2 & 3의 최신 버전은 pip와 함께 제공됩니다. 그래서 당신은 사용할 수 있습니다 pippip3각각.
Alistair Martin

8
나는 단지 모든 유틸리티의 이름을 바꾸어야한다고 지적했다. 그럼에도 불구하고, 예를 들어 python3이 명시 적으로 (예 : 하드 코딩 된) pip3이 아닌 pip를 호출하면 문제가 발생할 위험이 있습니다.
Christian

그것은 나쁜 생각입니다. 결국 모든 이름을 바꾸고 pip는 그런 식으로 작동하지 않습니다.
bhansa

python3에서 pip 문제가 발생하지 않도록하십시오. 초기 python3 인스톨레이션 마법사에서 UNSLECT "install pip"가 필요합니다. 그런 다음 python3.7 / python.exe의 이름을 python3.exe로 바꾸고 get-pip.py를 다운로드 한 다음 python3.exe get-pip.py를 실행하십시오. pip3은 이름이 바뀐 python3.exe가 아니라 망하는 /python3.7/python.exe python3입니다 알 수 있도록
Junchen 리우

36

둘 다 설치할 수 있습니다.

스크립트 앞에 이것을 작성해야합니다.

#!/bin/env python2.7

또는 결국 ...

#!/bin/env python3.6

최신 정보

내 솔루션은 Google 에서 빠른 검색 후 Unix와 완벽하게 작동 하며 Windows 솔루션은 다음과 같습니다.

#!c:/Python/python3_6.exe -u

같은 것 : 스크립트 앞에서.


우리는 리눅스에 설치할 수 있고 Windows에도 설치할 수 있습니다. env 변수를 설정하기 만하면됩니다. Windows에서 그렇게 할 수 있습니다 ...
Patrick Desjardins

7
이 솔루션은 윈도우에서는 작동하지 않습니다 (유닉스 스타일 쉘 (예 : cygwin)에서 호출하지 않는 한). #! 쉘에 의해 처리되며 윈도우는이를 지원하지 않습니다. 나는 당신이 googled 한 예가 Windows에서 실행되는 것이 아니라 웹 서버에 의해 처리되고 있다고 생각합니다.
Brian

예, Windows의 Apache에서 ... 질문 요청 셸이 자동으로 Cygwin, Apache 등으로 수행 할 수 있습니다.
Patrick Desjardins

@Daok : 난 당신을 억압하지 않았습니다. 도움을 청해도 감사합니다.
minty

4
Ppy 397-2011Windows 용 Python 런처에 설명 된대로 pylauncher 를 사용하여 이와 같은 작업을 수행 할 수 있습니다 .
martineau

33

버전 3.3부터 Python은 Windows 용 Launcher 유틸리티 https://docs.python.org/3/using/windows.html#python-launcher-for-windows 를 도입했습니다 .

따라서 여러 버전의 Python을 사용할 수 있습니다.

  1. Python 2.x 설치 (x는 필요한 버전 임)
  2. Python 3.x를 설치하십시오 (x는 필요한 버전입니다. 3.x> = 3.3 버전이 있어야합니다)
  3. 명령 프롬프트 열기
  4. py -2.x 를 입력 하여 Python 2.x를 시작하십시오.
  5. py -3.x 를 입력 하여 Python 3.x를 시작하십시오.

1
IDE를 사용하는 사람들은 어떻습니까? 이것도 그렇게 작동합니까?
emorphus

1
@ emorphus IDE에 의존한다고 생각하지만 일반적으로 인터프리터 버전을 선택할 수 있어야합니다. 따라서 여러 Python 버전이 설치된 경우 프로젝트에서 사용하려는 버전을 선택하십시오. 또한 IDE의 터미널은 명령 프롬프트와 동일하게 작동하므로 해당 명령도 작동해야합니다.
Ivan Kucerak

2
이것은 최고의 솔루션 IMO이며 시작부터 완벽하게 작동합니다. 할 수있는 -3.x가 없어도 py -3 filename.py됩니다.
OmegaNalphA

9

쉘의 2.5, 2.6 및 3.0을 한 줄 배치 스크립트 형식으로 사용하고 있습니다.

:: The @ symbol at the start turns off the prompt from displaying the command.
:: The % represents an argument, while the * means all of them.
@c:\programs\pythonX.Y\python.exe %*

그것들의 이름을 지정하고 pythonX.Y.batPATH 어딘가에 넣으십시오. 선호하는 부 버전 (즉, 최신 버전)의 파일을로 복사하십시오 pythonX.bat. (예 :) 어디서나 copy python2.6.bat python2.bat사용할 수 있습니다 python2 file.py.

그러나 이것은 Windows 파일 연결 상황에 도움이되지 않거나 심지어 영향을 미치지 않습니다. 이를 위해서는 #!라인 을 읽고 .py 및 .pyw 파일과 연결 하는 시작 프로그램이 필요 합니다.


Patrick Desjardins의 답변에 대한 내 의견을 참조하십시오 .
martineau

8

환경 변수에 두 가지를 모두 추가하면 두 실행 파일의 이름이 동일하기 때문에 충돌이 발생합니다 python.exe.

그중 하나의 이름 만 바꾸십시오. 제 경우에는 이름을로 변경했습니다 python3.exe.

내가 도망 그래서 python그것을 실행할 python.exe2.7 인 내가 실행할 때 python3이 실행됩니다 python3.exe이는 3.6

여기에 이미지 설명을 입력하십시오


노트 부분을 자세히 설명해 주시겠습니까? python의 이름을 python3으로 바꾸면 pip.exe, pip3.exe 및 pip3.7.exe가 모두 python.exe에 의존하는 것처럼 보이기 때문에 더 이상 pip를 실행할 수 없습니다. pip를 실행하면 error =>이 발생 Fatal error in launcher: Unable to create process using '"c:\users\<my_username>\appdata\local\programs\python\python37-32\python.exe" "C:\Users\<my_username>\AppData\Local\Programs\Python\Python37-32\Scripts\pip.exe" '합니다.
Mandar Sadye

이 문제가 없었습니다
Charif DZ

@MandarSadye 메모장에서 pip.exe를 열고 python.exe를 검색 할 수 있습니다. 그런 다음 python.exe를 python3.exe로 바꿉니다
atg

7

여기 있습니다 ...

winpylaunch.py

#
# Looks for a directive in the form: #! C:\Python30\python.exe
# The directive must start with #! and contain ".exe".
# This will be assumed to be the correct python interpreter to
# use to run the script ON WINDOWS. If no interpreter is
# found then the script will be run with 'python.exe'.
# ie: whatever one is found on the path.
# For example, in a script which is saved as utf-8 and which
# runs on Linux and Windows and uses the Python 2.6 interpreter...
#
#    #!/usr/bin/python
#    #!C:\Python26\python.exe
#    # -*- coding: utf-8 -*-
#
# When run on Linux, Linux uses the /usr/bin/python. When run
# on Windows using winpylaunch.py it uses C:\Python26\python.exe.
#
# To set up the association add this to the registry...
#
#    HKEY_CLASSES_ROOT\Python.File\shell\open\command
#    (Default) REG_SZ = "C:\Python30\python.exe" S:\usr\bin\winpylaunch.py "%1" %*
#
# NOTE: winpylaunch.py itself works with either 2.6 and 3.0. Once
# this entry has been added python files can be run on the
# commandline and the use of winpylaunch.py will be transparent.
#

import subprocess
import sys

USAGE = """
USAGE: winpylaunch.py <script.py> [arg1] [arg2...]
"""

if __name__ == "__main__":
  if len(sys.argv) > 1:
    script = sys.argv[1]
    args   = sys.argv[2:]
    if script.endswith(".py"):
      interpreter = "python.exe" # Default to wherever it is found on the path.
      lines = open(script).readlines()
      for line in lines:
        if line.startswith("#!") and line.find(".exe") != -1:
          interpreter = line[2:].strip()
          break
      process = subprocess.Popen([interpreter] + [script] + args)
      process.wait()
      sys.exit()
  print(USAGE)

방금이 스레드를 읽었습니다. (필요한 것이기 때문에). 우분투와 Windows 모두에 Pythons 2.6.1과 3.0.1이 있습니다. 그래도 문제가 해결되지 않으면 여기에 수정 사항을 게시하십시오.


1
sys.exit(process.returncode)호출 된 스크립트의 종료 상태를 호출자에게 전파하는 데 사용 하는 것이 좋습니다 .
martineau

4

내가 아는 한 파이썬은 레지스트리 설정과 달리 PATH 변수를 사용하여 명령 줄을 벗어납니다.

따라서 PATH에서 올바른 버전을 가리키면 해당 버전을 사용합니다. 새 PATH 설정을 사용하려면 명령 프롬프트를 다시 시작하십시오.


'python myscript.py'를 입력하면 C : \ python30 \ python.exe를 대신 입력 할 수 있지만 myscript.py 만 입력하면 명령 프롬프트가 자동으로 수행되어 2를 중단하고 싶지 않습니다. ? 같은 컴퓨터에 3.0을 설치하면 스크립트가 실행됩니다.
minty

아, 그리고 민트 : 그것은 첫 번째 의견의 정보를 질문에 추가하는 데 도움이 될 수 있습니다.
James McMahon

3

파이썬 설치는 일반적으로 연관 .py, .pyw.pyc파이썬 인터프리터와 파일. 당신은 탐색기에서 더블 클릭하거나 (유형 필요가 있도록 명령 줄 창에 이름을 입력하여 중 하나 파이썬 스크립트를 실행할 수 있도록 python scriptname.py, 단지 scriptname.py할 것).

이 연관을 수동으로 변경하려는 경우 Windows 레지스트리에서 다음 키를 편집 할 수 있습니다.

HKEY_CLASSES_ROOT\Python.File\shell\open\command
HKEY_CLASSES_ROOT\Python.NoConFile\shell\open\command
HKEY_CLASSES_ROOT\Python.CompiledFile\shell\open\command

파이썬 런처

사람들은 Windows 용 Python 런처를 개발해 왔습니다 . 첫 번째 줄에서 "shebang"라인 (Linux와 유사)을 찾고 Python 2.x 또는 3.x를 실행하는 파일 과 관련된 간단한 프로그램 .py.pyw파일 필요합니다. 자세한 내용은 "Windows 용 Python Launcher" 블로그 게시물을 참조하십시오.


3

Anaconda를 사용해보십시오.

Anaconda 환경 개념을 사용하여 프로그래밍을 배우기 위해 Python 3이 필요하지만 Python을 업데이트하여 Python 2.7 환경을 지우고 싶지 않다고 가정 해 봅시다. "뱀"(또는 원하는 것)이라는 새로운 환경을 만들고 활성화하고 다음과 같이 최신 버전의 Python 3을 설치할 수 있습니다.

conda create --name snakes python=3

소리보다 간단합니다. 소개 페이지를 참조하십시오 : Anaconda 시작하기

그런 다음 버전 2.x 및 3.x가 나란히 실행되는 특정 문제를 처리하려면 Anaconda를 사용하여 Python 버전 관리를 참조하십시오.


Anaconda 소개 링크가 끊어졌습니다.
alex

1
'아나콘다 시작하기'링크가 수정되었습니다.
Cale Sweeney

2
@JeffreyCordero 링크를 수정했습니다. Anaconda 문서는 실행할 수 있지만 숨길 수는 없습니다.
칼 스위니

2

동일한 머신에서 Python 2와 3을 실행하는 방법은 다음과 같습니다.

  1. Python 2.x 설치
  2. Python 3.x 설치
  3. Powershell 시작
  4. Python 2.x를 시작하려면 Python -2 를 입력하십시오.
  5. Python -3 을 입력 하여 Python 2.x를 시작하십시오.

Windows 용 파이썬 실행기는 혼자 스탠드가 처음 데뷔했을 때 2011 년 약속, 버전 3.3 이후 파이썬에 포함되었다 :

Windows 용 Python Launcher


IDE를 사용하는 사람들은 어떻습니까? 이것도 그렇게 작동합니까?
emorphus

2

다음은 Windows에 Python2 및 Python3을 설치하는 깔끔하고 깨끗한 방법입니다.

https://datascience.com.co/how-to-install-python-2-7-and-3-6-in-windows-10-add-python-path-281e7eae62a

내 경우 : Apache cassandra를 설치해야했습니다. 이미 D : 드라이브 에 Python3이 설치되어 있습니다 . 많은 개발 작업이 진행 중이므로 Python3 설치를 엉망으로 만들고 싶지 않았습니다. 그리고 Apache cassandra에만 Python2가 필요했습니다.

그래서 다음 단계를 수행했습니다.

  1. Python2 다운로드 및 설치
  2. 클래스 경로에 Python2 항목을 추가했습니다 ( C:\Python27;C:\Python27\Scripts).
  3. python.exepython2.exe로 수정했습니다 (아래 이미지 참조).

여기에 이미지 설명을 입력하십시오

  1. 이제 둘 다 실행할 수 있습니다. Python 2 ( python2 --version) 및 Python 3 ( python --version)의 경우 여기에 이미지 설명을 입력하십시오

따라서 Python3 설치는 그대로 유지되었습니다.


1

설치 프로그램에서 .py 파일에 대한 Windows 파일 연결을 설정하는 옵션이 있다고 생각합니다. 선택을 해제하면 괜찮을 것입니다.

그렇지 않은 경우 .py 파일을 이전 버전과 쉽게 다시 연결할 수 있습니다. 가장 간단한 방법은 .py 파일을 마우스 오른쪽 버튼으로 클릭하고 "연결 프로그램"/ "프로그램 선택"을 선택하는 것입니다. 나타나는 대화 상자에서 기본적으로 사용하려는 python 버전을 선택하거나 찾은 다음 "항상이 종류의 파일을 열기 위해이 프로그램을 사용하십시오"확인란을 선택하십시오.


이것이 내가 한 일입니다. Windows Vista 상자에 여전히 2.5.2 및 3.0.1이 있습니다. 설치 마법사에서 확인하지 않았습니다 ( "시스템에 등록"과 같은 메시지가있을 수 있습니다-잊어 버렸습니다). 둘 다 잘 작동합니다. 커맨드 라인의 경우, 파이썬 3을 시작하는 경로에 py.bat 파일을 넣었습니다. 멋진 것은 없지만 필요한 것을 수행합니다.
Anon

1

PATH 환경 변수에 python.exe 파일이 포함되어 있지 않은지 (현재 매일 스크립트를 실행하는 데 사용중인 파일 추가) 배치 파일에서 제안한대로 Kniht를 수행해야합니다. 그 외에도 나는 왜 안되는지 모르겠다.

추신 : 나는 "기본" 파이썬 으로 2.6을 설치하고 "플레이" 파이썬 으로 3.0을 설치했습니다 . 2.6은 PATH에 포함되어 있습니다. 모든 것이 잘 작동합니다.


1

두 가지를 동시에 용기있게 설치하기 전에 많은 질문이있었습니다. 파이썬을 주면 py2를 원할 때 py3로 이동합니까? pip / virtualenv는 py2 / 3에서 발생합니까?

지금은 매우 간단한 것 같습니다.

맹목적으로 둘 다 설치하십시오. 올바른 유형 (x64 / x32)이 있는지 확인하십시오. 설치하는 동안 / 설치 한 후 환경 변수 경로를 추가하십시오 .

[ENVIRONMENT]::SETENVIRONMENTVARIABLE("PATH", "$ENV:PATH;C:\PYTHONx", "USER")

위의 명령에서 x를 바꾸어 경로를 설정하십시오.

그런 다음 두 폴더로 이동하십시오.

로 이동

python3.6/Scripts/

pip의 이름을 pip3으로 바꿉니다.

pip3이 이미 존재하면 pip를 삭제하십시오. 이것은 pip만이 python2에서 실행되도록 합니다. 다음을 통해 확인할 수 있습니다.

pip --version

python3 과 함께 pip를 사용하려면 다음을 사용하십시오.

pip3 install 

파이썬 파일 및 기타와 동일하게 수행 할 수 있습니다.

건배!


1

두 Python 버전을 모두 설치 한 후 환경 변수에 경로를 추가하면 쉬워 환경 변수 설정집니다. 그런 다음 python 2 및 python 3 폴더로 이동하여 그림 python2 여기과 같이 각각 python2 및 python3으로 이름을 바꿉니다 python3 여기. 이제 cmd 유형 python2 또는 python3에서 필요한 버전을 사용하려면를 참조하십시오 여기.


0

필자는 동일한 컴퓨터에 Python 2.4, 2.5 및 2.6이 나란히 설치되어 있다고 가정합니다.


여러 버전의 2.x에 대한 저의 작업이지만 민트는 3.x와 함께 2.x를 실행할 수 있는지 묻습니다. 둘 사이에는 몇 가지 중요한 차이점이 있습니다. 참조 : 2.x와 3.x의 차이점
Cale Sweeney

0

나는 지금 파이썬으로 시작하고 있습니다. 파이썬 버전 2.x가 필요한 Zed Shaw의 저서 "Learn Python the Hard Way"를 읽고 있지만 파이썬 3.x가 필요한 수업도 들었습니다.

여기 내가 한 일이 있습니다.

  1. Python 2.7 다운로드
  2. Power Shell 실행 (이미 Windows에 설치되어 있어야 함)
  3. POWERSHELL에서 python을 실행하십시오 (인식하지 않으면 4 단계로 이동하십시오)
  4. powershell이 다음에서 python 2.7 유형을 인식하지 못하는 경우에만 :

"[ENVIRONMENT] :: SETENVIRONMENTVARIABLE ("PATH ","$ ENV : PATH; C : \ PYTHON27 ","USER ")"(외부 인용 부호 없음)

  1. 이제 python을 입력하면 python 2.7 blah blah blah라고 표시됩니다.

이제 Python 3.x 용

간단한 Python 3.x 다운로드에는 Windows 용 Python 앱이 포함되어 있습니다. 따라서 Windows 용 Python 앱을 작업 표시 줄에 고정하거나 바탕 화면에 대한 바로 가기를 만들면 완료됩니다!

3.x 용 Windows 용 Python 열기

Python 2.x 용 Open Powershell

이게 도움이 되길 바란다!


0

흠 .. https://www.python.org/downloads/release/python-365/ 에서 Windows 용 Python 3.6.5를 다운로드 하고 런처가 설치되었는지 확인하여 지금 바로이 작업을 수행했습니다 . 그럼, 파이썬 2와 파이썬 3를 다시 시작 프롬프트 명령을 사용하기위한 지침을 따라 다음 사용 py -2.7파이썬 2를 사용하고, py또는 py -3.6당신은 또한 사용할 수 있습니다 파이썬 3를 사용하는 pip2파이썬 2의 위해 pippip파이썬 3 개의를 위해 pip.


0

대부분의 작업에 python3을 사용하려는 것과 동일한 문제가 있었지만 IDA pro에는 python2가 필요했습니다. 그래서, 여기 내가 한 일이 있습니다.

먼저 다음과 같이 사용자 환경 변수에 3 개의 변수를 작성했습니다.

  1. PYTHON_ACTIVE : 처음에는 비어 있습니다
  2. HOME_PYTHON27 : Python 2가 설치된 폴더의 경로가 있습니다. 예 : "; / 스크립트;"
  3. HOME_PYTHON38 : python 2와 유사하게이 변수는 python 3 폴더에 대한 경로를 포함합니다.

이제 추가했습니다

% PYTHON_ACTIVE %

PATH 변수에. 기본적으로이 "PYTHON_ACTIVE"에 포함 된 것은 활성 파이썬입니다. "PYTHON_ACTIVE"의 포함을 프로그래밍 방식으로 변경하여 파이썬 버전을 전환합니다.

예제 스크립트는 다음과 같습니다.

:: This batch file is used to switch between python 2 and 3.
@ECHO OFF

set /p choice= "Please enter '27' for python 2.7 , '38' for python 3.8 : "

IF %choice%==27 (
setx PYTHON_ACTIVE %HOME_PYTHON27%
)

IF %choice%==38 (
setx PYTHON_ACTIVE %HOME_PYTHON38%
)


PAUSE

이 스크립트는 Python 버전을 입력으로 사용하므로 HOME_PYTHON27 또는 HOME_PYTHON38을 PYTHON_ACTIVE로 복사합니다. 따라서 전역 파이썬 버전을 변경합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.