2017-10-24 29 views
1

오늘은 Python의 첫날이며, pyenv을 사용하여 Python의 버전을 처리하고 있습니다. 터미널에서Python의 shebang은 콘솔에서 사용 된 동일한 경로와 다른 Python 버전을 평가합니다.

/usr/bin/env python 

내가 예상 한 올바른 응답을 얻을

Python 3.6.3 (default, Oct 24 2017, 02:48:04) 
[GCC 4.8.4] on linux 
Type "help", "copyright", "credits" or "license" for more information. 

그러나 실행했을 때 성공적으로 최신 버전 (3.6.3)을 설치하고 지금

pyenv global 3.6.3 

와 글로벌로 설정 내가 가지고있는 문제는 내 스크립트 파일에 사용 된 shebang이 동일한 /usr/bin/env python 경로를 가지고 있지만 그 시스템이 여전히 사전 설치된 시스템의 Python 버전으로 평가되는 이유를 누가 압니다. 2.7.6이다.

내가 (아파치 사용) 브라우저에 의해 인쇄되는 것을이

#!/usr/bin/env python 

import sys 
print("Content-type:text/html\r\n\r\n") 
print(sys.version) 

와 같은 스크립트에 의해 사용되는 버전입니다 확인하고

2.7.6 (default, Oct 26 2016, 20:30:19) [GCC 4.8.4] 

내가 pyenv의 CONFIGS와 함께 연주, 아파치를 다시 시작되었다 어떤 힌트를 얻었지만 성공하지 못했습니다.

아무도 여기에 무슨 문제가 있습니까? 고마워요!

+0

[이] (HTTPS : 당신이 정말로 스크립트가 특정 파이썬 버전에서 실행하려는 경우

그래서, 당신은 오두막에서 특정 파이썬 버전을 사용해야 : //stackoverflow.com/questions/1534210/use-different-python-version-with-virtualenv/39713544#39713544)는 pyenv가 3.6 이상에서는 더 이상 사용되지 않는다고 주장합니다. – Nae

답변

1

pyenv 사용자 당에 사용 된 파이썬 버전을 설정할 수 있습니다.

misza 사용자의 경우 3.6.3으로 설정하면 다른 사용자 (예 : www-data)는 영향을받지 않습니다.

웹 서버는 대개 특수 사용자 (보통 www-data)로 실행되므로 개인 설정에 대한 변경 사항은 아파치가 보는 모든 내용에 영향을 미치지 않습니다.

, 나는 정말 어떤 경우에 서버처럼 뭔가에 pyenv를 사용하는 것은 좋은 아이디어라고 생각했다 가졌 : 당신의 스크립트가 #!/usr/bin/env python 오두막을 사용하는 유일한 하나가 될하지 않을 수 있습니다. 또한 특정 Python 버전에 의해 호출되는 것에 의존하는 유일한 스크립트가 아닐 수도 있습니다 (그리고 확률은 #!/usr/bin/env python 인 대부분의 스크립트가 실제로 Python2.7 스크립트입니다).

#!/usr/bin/env python3.7 

또는

#!/usr/bin/python3.8