2017-04-13 1 views
-1

win10에서 python3을 사용하려고합니다.cmd에서 'python3'명령을 사용하여 치명적인 파이썬 오류가 발생했습니다.

> python3 myscript.py 

Fatal Python error: Py_Initialize: unable to load the file system codec 
     File "C:\Python27\Lib\encodings\__init__.py", line 123 
     raise CodecRegistryError,\ 
           ^
    SyntaxError: invalid syntax 

Current thread 0x00001e44 (most recent call first): 

가능한 문제를 나뿐만 아니라 내 시스템에 2.7을 가지고 :

이것은 내가 사용하려고하면 무엇을 얻을 수 있습니다. 명령 사용 pypython이 작동합니다. 그들은 Python 2.7 스크립트를 문제없이 실행합니다.

내 폴더를 PYTHONPATH에 추가했습니다.

enter image description here

누군가는 답을 알고 있나요?

+0

myscript.py의 코드를 추가 할 수 있습니까? – Alden

+0

파이썬 가상 환경을 실행하면 나중에이 두통에서 벗어날 수 있습니다. virtualenv 패키지를 살펴보면 얼마나 멋진가를 알 수 있습니다. –

+0

python 3에서 문법이 변경되었습니다. 'ValueError를 올리십시오', 'oops'를 포함하여 'raise ValueError ('oops ')'가 필요합니다. https://docs.python.org/3.0/whatsnew/를 참조하십시오. 3.0.html # changes-exceptions – tdelaney

답변

1

문제는 Python 2와 3 환경을 PYTHONPATH에 혼합 한 것입니다. 파이썬 2 배포판에서 모듈을 찾고 가져 오는 것이 완벽하게 괜찮다고 파이썬 3에게 말했습니다. 그리고 그것은 눈물로 끝날 것입니다.

파이썬은 실행할 때 표준 설치 디렉토리를 이미 알고 있습니다. 그것은 stdlib와 명시 적으로 설치 한 모든 모듈 (예 : pip를 통해)을 포함합니다. PYTHONPATH는 설치하지 않았지만 어딘가에 복사 한 항목에만 필요합니다.

PYTHONPATH는 (보통) scripts 디렉토리 나 python.exe 자체에 유용하지 않습니다. 스크립트 및 .exe는 파이썬이 아닌 운영 체제에서 찾을 필요가 있으므로 PATH에 있어야합니다.

창 관리자는 파일 확장명을 해당 확장명을 실행할 프로그램과 연결하여 복잡성을 추가 할 수 있습니다. 따라서 Windows에서는 바탕 화면을 클릭하여 Python 2 또는 3 스크립트를 실행할 수 있는지 여부를 선택해야합니다. 파이썬 설치 관리자는 호출 할 파이썬을 알고있는 래퍼를 만들어서 영리하게하려고합니다.

Windows에 설치 한 후 경로에 스크립트 및 .exe 디렉터리를 추가 할 가능성이 큽니다. 당신은 파이썬 2와 3 모두를 위해 그것을 할 수 있습니다 ... 조금 문제가 있습니다. 파이썬 2와 3에서 같은 이름의 스크립트를 사용하면 경로의 첫 번째 스크립트가 승리합니다.

PYTHONPATH를 완전히 제거하고 PATH에 있는지 확인하십시오. 내 창 파이썬 설치가 너의 것과 약간 다르다. 그래서 나는 확실히 테스트 할 수 없었다.

C:\Python27 
C:\Python27\Scripts 
C:\Python36 
C:\Python36\Scripts 
+0

파이썬 3이 설치되어 있다면 .py [w] 파일과 연관된 py [w] .exe 실행기가 있어야하며 [가상] 주렁주렁을 사용해야합니다. 이것은 모두 문서에서 매우 자세하게 그리고 신중하게 설명됩니다. 왜 우리가 여기에서 재촉해야하는지 알지만, 읽지 않으려는 사람들을 위해 수백만 번 반복해서 저주를받는 것 같습니다. – eryksun

+0

@eryksun 예, 여러 설치 프로그램이 다른 일을하지만 Windows를 충분히 사용하지 않는 것을 보았습니다. 나는 그 시점에서 막연하기를 바랬다. – tdelaney

+0

나는 당신이 말했듯이 해냈고, 또한 python3.exe의 이름을 python.exe로 다시 바 꾸었습니다. 이제 나는 명령으로'python3'을 사용할 필요조차 없으며,'python'은 2.7과 3.6 스크립트를 실행합니다. 친절하게 고마워요! – MattSom

1

주 PATH 변수에 python을 추가하십시오.

C:\Python35;C:\Python35\Lib\site-packages\;C:\Python35\Scripts\ 

무엇이든 사용하십시오. 또한 virtualenv로 python을 조사하십시오. lib 디렉토리 아래에 있으며 PIP를 통해 설치할 수 있습니다.

한 대의 컴퓨터에서 여러 버전을 실행하면 시간과 번거 로움을 덜어 주므로 사용하기가 쉽습니다!

관련 문제