특정 버전을 사용하도록 Python 펼쳐서 지시하는 방법
main.py 모듈에서 (아마도) 어떤 인터프리터를 사용할 수 있는지 어떻게 알릴까요? 내 말은 : 특정 시나리오가 Python 버전 3을 사용하여 전체 프로그램을 해석하는 방법해야합니까?
보너스 : 어떤 영향을 미칠까요? 내 프로그램에 대한 virtualenv를 만든 다음 다른 버전의 Python을 사용하도록 지시하면 충돌이 충돌이 모든 것이 생각하는 것이 맞습니까?
펼쳐의 맨 위 줄을 줄 수 있습니다 ./my_program.py로 혹시 때만 작동합니다.
로 실행 python my_program.py
하면 which python
반환되는 Python 버전이 사용됩니다.
re : to virtualenv use : virtualenv -p /usr/bin/python3.2
또는 그 실행 파일을 사용하는 설정하는 모든 것.
아마도 당신이 요청한 것과 일치하는 것이 아닐까요?
import sys
if sys.version_info[0] < 3:
raise Exception("Python 3 or a more recent version is required.")
#!/usr/bin/python
마지막에 Python의 번호와 함께 shebang (코드의 첫 번째 줄)을 사용합니다.)
Linux 명령 줄에서 Python을 실행하려는 경우에도 동일합니다.
OP가 * nix 플랫폼에서 작동 할 수있을 수 있습니다 답변은 * nix nix 플랫폼에 도움이 수 있습니다. Microsoft Windows에서 shebang 접근 방식 작업을 경험하지 않습니다.
Rephrased : shebang 라인은 " 내 펼쳐 내 "에 대한 귀하의 질문에 답하지만 저는 유닉스 계열 플랫폼에 믿습니다. 펼쳐지는 외부의 Unix 셸이지만 실제로 호출 할 Python 인터프리터 버전을 결정하기 위해 shebang 줄을 해석합니다. 확실하지 않지만 솔루션이 Microsoft Windows 사용자의 문제를 해결하지 플랫폼 고 생각합니다.
Microsoft Windows 환경에서 특정 Python 버전에 대해 최적화 환경 변수없이 특정 Python 버전을 실행하는 방법을 단순화하는 방법은 다음 과 같이 실행하려는 경로를 python.exe에 붙이는 것입니다. C : \ Python25 \ python.exe mymodule.py 또는 D : \ Python27 \ python.exe mymodule.py
잘못된 잘못된 버전의 Python 라이브러리를 PYTHONPATH 및 기타 PYTHON ... 환경 변수를 업데이트합니다.
예를 들어 다음을 수 있습니다. C : \ Python2.5.2 \ python.exe mymodule
그러나 환경 변수는 다음과 같이 잘못된 버전을 가리킬 수 있습니다.
PYTHONPATH = D : \ Python27
PYTHONLIB = D : \ Python27 \ lib
끔찍한 재미!
따라서 Windows에서는 가상 환경 방식은 환경을 설정하는 배치 파일을 사용하고 python.exe 에 상주하는 경로 를 접두사로 지정하여 특정 Python 실행 파일을 호출하는 것입니다.이 방법에는 추가 세부 정보가 있습니다. 그래도 관리하기 위해; 응용 프로그램이 종료 된 후에도 계속 콘솔이 계속 유지되도록 "시작"또는 "cmd.exe"명령에 대한 명령 줄 인수를 사용하여 ""콘솔 "환경을 저장하고 교체"하는 것과 같은 작업을 수행합니다.
귀하의 질문은 특정 버전의 Python을 예상하는 여러 Python 모듈이 신뢰할 게 만듭니다. 하위 프로세스 모듈 을 사용하는 시작 모듈을 사용하면 펼쳐 "내에서"해결할 수 있습니다 . mymodule.py 를 호출하는 대신 모듈을 호출하는 모듈을 호출합니다. 아마도 launch_mymodule.py
launch_mymodule.py
import subprocess
if sys.argv[2] == '272':
env272 = {
'PYTHONPATH': 'blabla',
'PYTHONLIB': 'blabla', }
launch272 = subprocess.Popen('D:\\Python272\\python.exe mymodule.py', env=env272)
if sys.argv[1] == '252'
env252 = {
'PYTHONPATH': 'blabla',
'PYTHONLIB': 'blabla', }
launch252 = subprocess.Popen('C:\\Python252\\python.exe mymodule.py', env=env252)
나는 이것을 증명하지 않습니다.
쉘이 당신이 shebang 라인이라면 어떤 버전을 사용할 것인지 결정하기 때문에 어떤 버전을 사용할 수 없습니다.
shebang 줄이있는 셸을 사용하지 않고 입력 python myprogram.py
할 경우 pythonXXX myprogram.py
사용할 경우 사용할 버전을 입력 할 때 특정 Python 버전을 사용합니다.
Python 프로그램이 실행되면 파일을 실행하는 데 사용할 수 있습니다. Python 실행을 이미 결정했습니다.
virtualenv
제거하기 위해 특히 충돌을 제거하기 위해 존재합니다.
Windows에서 다른 버전의 Python으로 작업하는 동안
이 방법을 사용하여 버전을 전환하고 있습니다.
shebangs 및 virtualenvs를 망쳐 놓는 것보다 낫다고 생각합니다.
1) 원하는 설치 버전 설치
2) 환경 변수> PATH로 이동하십시오.
(파이썬 버전의 경로가 이미 Env.Vars.> 경로에 추가가 가정합니다)
3) 사용하고 싶지 않은 모든 버전의 경로를 사용하십시오
(경로를 삭제하지 말고 "_sup"과 같은 접미사를 추가하십시오)
4) 터미널에서 호출
(Windows는 변경 한 잘못된 경로를 건너 뛰고 제외하지 경로에서 python.exe를 찾고 나중에이 버전을 사용합니다)
5) 접미사를 사용하여 버전 간 전환
'ProgramingTip' 카테고리의 다른 글
매개 변수에 슬래시가있는 URL? (0) | 2020.11.24 |
---|---|
IntelliJ IDEA가 사용하지 않는 패키지를 삭제하는 것을 방지하는 방법은 무엇입니까? (0) | 2020.11.24 |
'체크 아웃되지 않은'브랜치 푸시 (0) | 2020.11.24 |
EF 코드 우선에서 링크 테이블에 대한 계단식 삭제를 중단하는 방법은 무엇입니까? (0) | 2020.11.24 |
Android 4.x에서 목록보기의 EditText가 포커스를 잃습니다. (0) | 2020.11.24 |