동일한 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와 함께 제공됩니다. 그래서 당신은 사용할 수 있습니다 pip및 pip3각각.
— 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-2011 년 Windows 용 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.exe 를 python2.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의 위해 pip및 pip파이썬 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.