2012-09-14 5 views
6

python 프로그래밍을 사용하는 동안 python 컴파일러를 사용하는 동안 차이점이 있습니까? 내 프로그램 실행 시간이 빨라지도록 pypy를 사용하려고했습니다. 파이썬에서 작동하는 모든 구문이 pypy에서도 작동합니까? 차이가 없다면 debian lunux에 pypy를 설치하고 pypy에 몇 가지 사용 예를 어떻게 설치합니까? Google은 pypy에 대한 설명 이외에 많은 정보를 포함하지 않습니다.pypy 컴파일러 사용

답변

11

:

PyPy 1.9 파이썬 2.7.2 구현 및 ARM과 PPC가 진행되는으로, 인텔 x86 (IA-32) 및 x86_64의 플랫폼에서 실행됩니다. Python 테스트 스위트를 통과하여 핵심 언어 인 을 모두 지원합니다.

이것은 Python 2.7로 작성한 코드가 거의 작동한다는 것을 의미합니다. 언급할만한 유일한 예외는 numpy과 같이 C로 작성된 일부 파이썬 확장입니다.

설치가 매우 쉬워야합니다 (download a linux binary from here). 그런 다음 통역사를 추출하십시오. 이 시점에서 일반적인 파이썬 인터프리터를 사용하여 파이썬 프로그램을 실행하는 것과 비슷한 방법으로 파이썬 프로그램을 실행할 수 있습니다. 대신 명령 줄에서

는 :

python my_program.py 

는 사용 :

당신이 pypy를 사용하려는 이유/방법의 예
path/to/where/you/installed/pypy my_program.py 

PyCon 2012에서 this video 체크 아웃
+2

또한 PyPy와 현재 2.x CPython 사이의 주요 차이점을 모두 나열한 http://pypy.org/compat.html을 참조하십시오. 그리고 알려진 차이점까지 모두 상세하게 링크되어 있습니다. – abarnert

+0

일반적으로 pypy가 빠르지 않습니까? pypy를 사용하여 프로그램을 실행하면 Python 스크립트를 정상적으로 실행하는 것보다 두 배의 시간이 걸립니다. 기묘한...!! –

+3

Pypy는 많은 경우 더 빠르지 만 전부는 아닙니다. 크고 긴 실행 프로그램에서보다 빠른 속도 향상을 볼 가능성이 더 높습니다. CPython과 PyPy의 속도 비교는 다음과 같은 다양한 태스크에서 가능합니다. http://speed.pypy.org/ PyPy는 다른 것들보다 훨씬 뛰어납니다. – Wilduck

2

pypy는 파이썬 언어의 호환 구현입니다. 이것은 몇 가지 (의도적 인) 차이가 있음을 의미합니다. 몇 가지 차이점 중 하나는 pypy가 참조 카운팅을 사용하지 않는다는 것입니다. 예를 들어 파일을 수동으로 닫아야하는 경우 CPython처럼 파일 변수가 범위를 벗어날 때 자동으로 닫히지 않습니다. pypy features page에서

+0

"몇 가지 * 의도적 인 구문 차이"? 아무도 반대하지 않았습니까? 어떤 구문상의 차이점을 줄 수 있습니까? – delnan

+0

아, 나 좀 망설 인다. 나는 특별한 차이가 아니라 특별한 차이점을 의미했습니다. –

+2

파일 *은 자동으로 닫힙니다. 즉시 사용하실 수 없습니다. 그래서'open ('foo', 'w'). write ('test'); print open ('foo', 'r'). read()'는 "test"를 출력하지 않습니다. 그러나 (a) 공식 파이썬 문서는 그것이 사용될 것이라는 것을 보장하지 않으며 더 중요한 것은 (b) 범위를 벗어나는 것에 의해 유발 된 부작용에 의존하여 그 의미있는 영향을 미친다는 것 귀하의 프로그램 운영은 "명백한 것이 암묵적인 것보다 낫습니다"라는 * 전반적인 * 위반입니다. – Ben

관련 문제