2012-11-03 8 views
2

저는 파이썬과 OSX에 대한 경험이 거의 없기 때문에 문제가 발생했습니다.Python 사이트 패키지 모듈을 찾을 수 없습니다.

최종 목표는이 모듈이 실행되도록하는 것입니다 : http://pypi.python.org/pypi/memory_profiler, 결코 모듈을 찾지 못합니다. 스타터 그래서

가 나는 easy_install을했던 모든 것이 내가 말할 수있는 것과 잘 설치 :

@profile 
def my_func(): 
    return 2 

if __name__ == '__main__': 
    my_func() 

:

easy_install -U memory_profiler # pip install -U memory_profiler 

다음 난 그냥 볼 롤링을 얻기 위해 example.py 파일을 생성 실행하려고 시도했지만이 오류가 발생했습니다 :

$ python example.py 

Traceback (most recent call last): 
    File "example.py", line 2, in <module> 
    @profile 
NameError: name 'profile' is not defined 

이것은 memory_prof에 대한 질문이 아닙니다. iler 모듈, 그러나 내가 뭘 잘못하고 잘못 구성했는지에 대해 더 알고 싶습니까? 파이썬 2.7에서 OSX 10.8.2를 사용하고 있습니다.

이건 내 "어떤 파이썬은"상태 것입니다 : 그 심볼릭 링크 이후

/Library/Frameworks/Python.framework/Versions/Current/bin/python 

를, 내가 원래에 갈 때 그것에서 : 나는 혼란 스러워요

/Library/Frameworks/Python.framework/Versions/2.7/bin/python 

가 있다는 것입니다 easy_install 올바르게이 폴더에 memory_profiler.py 파일을 넣으십시오.

/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages 

그리고 나는 이해할 때 파이썬 실행되면 PYTHONPATH 및 사이트 패키지의 모듈을 확인합니다. (??)

모듈이 site-packages 폴더에 있으면 왜 example.py가 작동하지 않습니까? 또한 site-packages 폴더에있는 모듈이 경로의 일부인 경우, 적어도 memory_profiler.py를 실행하여 Python으로 실행되는지를 확인할 수 있지만 대신이 오류가 발생합니다.

파이썬이 : ../2.7/Resources/Python.app/Contents/MacOS/Python으로되어 있기 때문에 혼란 스럽습니다. 그러나 ../2.7/bin/python이 될 것으로 생각했습니다. ../2.7/lib/python2.7/site-packages에있는 memory_profiler.py 파일을 검사하지 않아야합니까?

또한이 두 폴더가 모두 존재하는 이유는 무엇이며 그 차이점은 무엇입니까?

/System/Library/Frameworks/Python.framework 
/Library/Frameworks/Python.framework 

나는 큰 조각의 퍼즐을 놓치고있어, 올바른 방향으로 향하게하는 데 도움이 될 것입니다.

업데이트 :

내가 밖으로 떠난다 :

from memory_profiler import profiler 

지금은이 오류를 얻을 아마 내 돌대가리 문제의 대부분,하지만 :

Traceback (most recent call last): 
File "example.py", line 1, in <module> 
from memory_profiler import profiler 
ImportError: cannot import name profiler 
+0

로 장식을 가져올 수있게되었습니다, 나는 그것을 완전히 놓쳤다. 방금 다음 질문으로 질문을 업데이트했습니다. – adam

+1

'/ System/Library/Frameworks/Python.framework'에는 Apple 제공 시스템 인 Pythons ('/ usr/bin/;/Library/Frameworks/Python.framework'는 OS X 용'python.org' 인스톨러를 사용하여 설치 한 다른 파이썬 인스턴스를 포함합니다. 이들은 보통'/ usr/local/bin/pythonx.x'뿐만 아니라 프레임 워크의 버전 관리 된 bin 디렉토리에 있습니다. –

답변

2

난 당신이 당신이 가정을 수입 통계? from memory_profiler import profiler ...귀하의 질문을 읽고 그것은 당신이 파이썬 자동으로 PYTHONPATH에있는 모든 모듈에서 모든 것을 가져 오는 것 같아요, 그것은 너무 많은 메모리를 차지할 것이기 때문에 두 모듈이 같은 기능을 가지고 있다고 생각하지 않는 것 같습니다.

편집

그래서 그것은 @profiler 데코레이터는 명령 줄에서 프로그램을 실행하는 경우입니다 작동하는 유일한 방법 ... 표시

python -m memory_profiler example.py 

당신이 내에서 memory_profiler를 사용하려면

스크립트는이 예제를 참조합니다. https://github.com/fabianp/memory_profiler/blob/master/examples/plot_memory.py

2

이전 버전의 line_profiler에서는 @johnthexii가 지적한대로 명령 줄에서 실행해야했습니다. 명령 줄에서 실행하면 여전히 (이 달리 설정되지 않은 인터프리터 일부 후크를 설정하기 때문에) 프로파일 러를 실행하는 권장되는 방법입니다,하지만 그것도 아니

from memory_profiler import profile 
관련 문제