파이썬 코드에 2와 3를 명시해 주면 어떨까요?

javaxer의 이미지

요즘 파이썬을 다시 공부 중인데(사두었던 책 두권은 한동안 방치 플레이를 하다 다시 펴보고 시작했습니다.
다행이도 우리집 책은 사람을 범죄자로 몰려는 헌책 계집애는 아니죠.)

가만 생각해보니 예전에 파이썬을 쓰다가 않쓰게 된 이유가 어떤 연산을 했는데(어떤 연산인지는 국가비밀입니다.)

결과가 전혀 다르게 나와 파이썬 사칙 연산에 대한 신뢰를 할수가 없게 되어서 였습니다.

지금 생각해 보면 아마 float타입 연산과 int타입 연산 (3/2가 왜 1.5가 아니라 1이냐고!)탓인듯 한데 그걸 몰라서 결국 scilab을 써서 그 연산을 했지요.(그러고 보니 scilab도 한동안 놓아 두었네, 예는 아예 번역된 책도 없지만)

3버전에서 이게 해결되어 (3/2가 1.5로만 나옵니다. 만세!) 3로 쓰려고 하니 이번에는 2코드와 호환성 문제 크리...(젠장)

덕분에 책에 나온 예제 코드를 위한 라이브러리 설치조차 못하고 있지요.(easy_install과 pip라는 하늘이 내린 도구를 두고서 맨날 나오는게 에러코드)

근데 이쯤되어서 생기는 한가지 의문 :

그냥 코드 맨 위에 주석으로 2코드인지 3코드인지를 명시해 주고 그걸 인터프리터가 알아서 해석하게 하면 않되는건가? (그거 못할 능력자는 절대 아닐터인데 말이죠.)

즉, 코드를 짤때 맨 위에 메타데이타 형식으로(이렇게 지칭하는게 옳을지는 모르겠습니다.) 버젼을 명시해 주면 사람도 일단 코드를 면밀히 검토해볼 필요 없이 인식이 가능할 터이고, 인터프리터도 자기가 어떤식으로 해석해야 할지 알수 있을 터이니 단기적으로는 2와 3의 인터프리터 통합을 장기적으로는 과도기 문제를 해결할 수 있을 터인데, 이걸 모르실 분이 아니신데 이상하게도 적용이 않되더라구요.

어쩜 이런식으로 코드가 섞여서 코드가 지저분해지는걸 피하고 싶은 심정일 지도 모르겠습니다만은 라이브러리 설치에 애를 먹으니 너무 불편해 그렇습니다.

litdream의 이미지

#!/usr/bin/env python2

or

#!/usr/bin/env python3

삽질의 대마왕...

javaxer의 이미지

맞아요, 바로 이런식으로

@의 뜻으로 모일 날이 올까?
->아니, 흩어지는게 @이야.

iamt의 이미지

(float)와 (int)를 이용해서요..

---------------------------------------------------------------------------------
C(++)과 php 펄등을 공부하고있습니다.
반갑습니다! 리눅스 :-)

javaxer의 이미지

그 당시에는 그걸 몰랐거든요.

@의 뜻으로 모일 날이 올까?
->아니, 흩어지는게 @이야.

jjlounger의 이미지

저도 버전호환성과 라이브러리 문제로 엄청 고생했었던 기억이 나네요.
특히나, 파이썬버전이 서로 다른 서버를 여러개 사용할 일이 있다보니
호환성 문제는 더 치명적으로 다가오더군요.
특히 써드파티 라이브러리는 더더욱...

결국 그런 문제 때문에 저는 그냥 perl과 pdl로 옮겨왔네요.

javaxer의 이미지

크윽, 알아 주시니 감사합니다.

@의 뜻으로 모일 날이 올까?
->아니, 흩어지는게 @이야.

snowall의 이미지

스타크래프트1과 스타크래프트2사이에 있었던 일과 비슷한 현상인 것 같은데요

저는 그냥 처음부터 다른 언어라고 생각합니다.

굳이 구분하자면 .py3과 .py2처럼 확장자로 구분하면 될 것 같습니다. .c와 .cpp처럼, .f와 .f90처럼.

피할 수 있을때 즐겨라! http://melotopia.net/b

마잇의 이미지

지금 생각해 보면 아마 float타입 연산과 int타입 연산 (3/2가 왜 1.5가 아니라 1이냐고!)탓인듯 한데 그걸 몰라서 결국 scilab을 써서 그 연산을 했지요.(그러고 보니 scilab도 한동안 놓아 두었네, 예는 아예 번역된 책도 없지만)

3버전에서 이게 해결되어 (3/2가 1.5로만 나옵니다. 만세!) 3로 쓰려고 하니 이번에는 2코드와 호환성 문제 크리...(젠장)


해결 됐다는 표현 보다는 바뀌었다는 표현이 맞을 것 같습니다. 이미 말씀하셨지만 수치 연산을 파이썬이 어떻게 처리하는 모르는 상태에서 얻은 결과가 몸에 맞지 않으 셨다가 새로운 표준이 적용 되면서 맞춰진 것처럼 느끼시는 것 같습니다.

파이썬 2 - > 3으로 넘어가는 문제는 각 배포본에서 좀 심각하게 다루는 문제 중 하나 입니다.

몇몇 배포본들이 다음 버전에서 기본 파이썬 버전을 3으로 올라가겠다고 한 글을 읽은 적이 있는데 이런 경향이 보편화 되면 차차 나아지지 않을까 생각 합니다.


--
마잇