Windows를 실행 중이며 명령 줄에서 프로그램을 실행할 때 셸 / OS가 레지스트리 설정에 따라 Python을 자동으로 실행합니다. 동일한 컴퓨터에 2.x 및 3.x 버전의 Python을 설치하면 문제가 발생합니까?
같은 컴퓨터에서 2.x 스크립트를 계속 실행하면서 Python 3을 가지고 놀고 싶습니다.
Windows를 실행 중이며 명령 줄에서 프로그램을 실행할 때 셸 / OS가 레지스트리 설정에 따라 Python을 자동으로 실행합니다. 동일한 컴퓨터에 2.x 및 3.x 버전의 Python을 설치하면 문제가 발생합니까?
같은 컴퓨터에서 2.x 스크립트를 계속 실행하면서 Python 3을 가지고 놀고 싶습니다.
답변:
공존을위한 공식 솔루션 은 Python 3.3.0 에 포함 된 Windows 용 Python Launcher , PEP 397로 보입니다 . 릴리스 덤프 설치 및 에 발사기 ( 다음과 관련된) 과 각각 스크립트.py.exe
pyw.exe
%SYSTEMROOT%
C:\Windows
py
pyw
새 실행기를 사용하려면 (자신의 연결을 수동으로 설정하지 않고) "확장자 등록"옵션을 활성화 된 상태로 두십시오. 왜 그런지 잘 모르겠지만 내 컴퓨터에서는 Py 2.7을 "기본"(런처의)으로 두었습니다.
명령 행에서 직접 호출하여 스크립트를 실행하면 실행기를 통해 스크립트를 라우팅하고 shebang (있는 경우)을 구문 분석합니다. 런처를 명시 적으로 호출하고 스위치를 사용할 수도 있습니다 py -3 mypy2script.py
.
모든 방식의 세방이 작동하는 것 같습니다
#!C:\Python33\python.exe
#!python3
#!/usr/bin/env python3
원치 않는 학대뿐만 아니라
#! notepad.exe
where.exe pip
. 파이썬 3 설치 프로그램 pip3
은 pip에 대한 별칭을 설치한다고 생각 하지만 py -3 -m pip install requests
생각 처럼 할 수도 있습니다 .
내 설정은 다음과 같습니다.
C:\Python34
(기본 설치 경로)로 이동하여 python.exe를 python3.exe로 변경하십시오.C:\Python27\;C:\Python27\Scripts\;C:\Python34\;C:\Python34\Scripts\;
이제 명령 행 python
에서 2.7 및 python3
3.4에 사용할 수 있습니다 .
pip
cli에서는 어떻습니까?
pip
및 pip3
각각.
둘 다 설치할 수 있습니다.
스크립트 앞에 이것을 작성해야합니다.
#!/bin/env python2.7
또는 결국 ...
#!/bin/env python3.6
내 솔루션은 Google 에서 빠른 검색 후 Unix와 완벽하게 작동 하며 Windows 솔루션은 다음과 같습니다.
#!c:/Python/python3_6.exe -u
같은 것 : 스크립트 앞에서.
버전 3.3부터 Python은 Windows 용 Launcher 유틸리티 https://docs.python.org/3/using/windows.html#python-launcher-for-windows 를 도입했습니다 .
따라서 여러 버전의 Python을 사용할 수 있습니다.
py -3 filename.py
됩니다.
쉘의 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.bat
PATH 어딘가에 넣으십시오. 선호하는 부 버전 (즉, 최신 버전)의 파일을로 복사하십시오 pythonX.bat
. (예 :) 어디서나 copy python2.6.bat python2.bat
사용할 수 있습니다 python2 file.py
.
그러나 이것은 Windows 파일 연결 상황에 도움이되지 않거나 심지어 영향을 미치지 않습니다. 이를 위해서는 #!
라인 을 읽고 .py 및 .pyw 파일과 연결 하는 시작 프로그램이 필요 합니다.
환경 변수에 두 가지를 모두 추가하면 두 실행 파일의 이름이 동일하기 때문에 충돌이 발생합니다 python.exe
.
그중 하나의 이름 만 바꾸십시오. 제 경우에는 이름을로 변경했습니다 python3.exe
.
내가 도망 그래서 python
그것을 실행할 python.exe
2.7 인 내가 실행할 때 python3
이 실행됩니다 python3.exe
이는 3.6
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" '
합니다.
여기 있습니다 ...
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이 있습니다. 그래도 문제가 해결되지 않으면 여기에 수정 사항을 게시하십시오.
sys.exit(process.returncode)
호출 된 스크립트의 종료 상태를 호출자에게 전파하는 데 사용 하는 것이 좋습니다 .
내가 아는 한 파이썬은 레지스트리 설정과 달리 PATH 변수를 사용하여 명령 줄을 벗어납니다.
따라서 PATH에서 올바른 버전을 가리키면 해당 버전을 사용합니다. 새 PATH 설정을 사용하려면 명령 프롬프트를 다시 시작하십시오.
파이썬 설치는 일반적으로 연관 .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" 블로그 게시물을 참조하십시오.
Anaconda를 사용해보십시오.
Anaconda 환경 개념을 사용하여 프로그래밍을 배우기 위해 Python 3이 필요하지만 Python을 업데이트하여 Python 2.7 환경을 지우고 싶지 않다고 가정 해 봅시다. "뱀"(또는 원하는 것)이라는 새로운 환경을 만들고 활성화하고 다음과 같이 최신 버전의 Python 3을 설치할 수 있습니다.
conda create --name snakes python=3
소리보다 간단합니다. 소개 페이지를 참조하십시오 : Anaconda 시작하기
그런 다음 버전 2.x 및 3.x가 나란히 실행되는 특정 문제를 처리하려면 Anaconda를 사용하여 Python 버전 관리를 참조하십시오.
Windows 용 파이썬 실행기는 혼자 스탠드가 처음 데뷔했을 때 2011 년 약속, 버전 3.3 이후 파이썬에 포함되었다 :
다음은 Windows에 Python2 및 Python3을 설치하는 깔끔하고 깨끗한 방법입니다.
내 경우 : Apache cassandra를 설치해야했습니다. 이미 D : 드라이브 에 Python3이 설치되어 있습니다 . 많은 개발 작업이 진행 중이므로 Python3 설치를 엉망으로 만들고 싶지 않았습니다. 그리고 Apache cassandra에만 Python2가 필요했습니다.
그래서 다음 단계를 수행했습니다.
C:\Python27;C:\Python27\Scripts
).따라서 Python3 설치는 그대로 유지되었습니다.
설치 프로그램에서 .py 파일에 대한 Windows 파일 연결을 설정하는 옵션이 있다고 생각합니다. 선택을 해제하면 괜찮을 것입니다.
그렇지 않은 경우 .py 파일을 이전 버전과 쉽게 다시 연결할 수 있습니다. 가장 간단한 방법은 .py 파일을 마우스 오른쪽 버튼으로 클릭하고 "연결 프로그램"/ "프로그램 선택"을 선택하는 것입니다. 나타나는 대화 상자에서 기본적으로 사용하려는 python 버전을 선택하거나 찾은 다음 "항상이 종류의 파일을 열기 위해이 프로그램을 사용하십시오"확인란을 선택하십시오.
두 가지를 동시에 용기있게 설치하기 전에 많은 질문이있었습니다. 파이썬을 주면 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
파이썬 파일 및 기타와 동일하게 수행 할 수 있습니다.
건배!
필자는 동일한 컴퓨터에 Python 2.4, 2.5 및 2.6이 나란히 설치되어 있다고 가정합니다.
나는 지금 파이썬으로 시작하고 있습니다. 파이썬 버전 2.x가 필요한 Zed Shaw의 저서 "Learn Python the Hard Way"를 읽고 있지만 파이썬 3.x가 필요한 수업도 들었습니다.
여기 내가 한 일이 있습니다.
"[ENVIRONMENT] :: SETENVIRONMENTVARIABLE ("PATH ","$ ENV : PATH; C : \ PYTHON27 ","USER ")"(외부 인용 부호 없음)
이제 Python 3.x 용
간단한 Python 3.x 다운로드에는 Windows 용 Python 앱이 포함되어 있습니다. 따라서 Windows 용 Python 앱을 작업 표시 줄에 고정하거나 바탕 화면에 대한 바로 가기를 만들면 완료됩니다!
3.x 용 Windows 용 Python 열기
Python 2.x 용 Open Powershell
이게 도움이 되길 바란다!
흠 .. 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
.
대부분의 작업에 python3을 사용하려는 것과 동일한 문제가 있었지만 IDA pro에는 python2가 필요했습니다. 그래서, 여기 내가 한 일이 있습니다.
먼저 다음과 같이 사용자 환경 변수에 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로 복사합니다. 따라서 전역 파이썬 버전을 변경합니다.
/usr/bin/python
하고 Python 3.3을 설치합니다/usr/bin/python3
. Python3의 Pip과 IPython에 다른 이름을 부여합니다. 매우 편리합니다.