2011-08-15 3 views
2

신입 회원의 실수 또는 명확성이 부족한 경우 첫 번째 질문을하십시오.Coverage.py Python Module - 스크립트를 실행할 때 가져 오기 오류

올바르게 작동하는 "커버리지"모듈을 얻는 데 문제가 있습니다.

파이썬 디렉토리를 수정하거나 추가 할 수있는 권한이 없으므로, easy_install을 설치 범위에 적용 할 수 없습니다. python 경로에 coverage 디렉토리를 추가하여이 문제를 해결했습니다. 범위가 올바르게 작동하고 쉘에 covereage --version을 입력하면 버전이 출력됩니다. coverage help은 사용 가능한 모든 명령을 표시합니다. 모든게 잘된 것 같습니다. 작고 간단한 스크립트에서 범위를 잘 실행할 수 있습니다.

5 개 모듈 전체 수입량의 개수 (작업으로 시험 된 스크립트) coverage run [normal commands]으로 명령을 실행하는 경우, 스크립트 , 실행 및 실패에 큰 스크립트 실행시

그러나, 일부 모듈은 찾을 수 없기 때문에 . ./script_name.py arg1 arg2 arg3

을 내가 입력하여 스크립트를 실행하려고 할 때 : python script_name.py arg1 arg2 arg3의를 내가 실행하여 스크립트를 호출

:

명령 줄 범위없이 (작업 미세) - 여기

은 고장의 스크립트가 실패하고 모듈을 가져 오지 못했습니다.

Error message: 
     ImportError: No module named cx_Oracle 

적용 범위가 포함 된 명령 줄 :

coverage run ./script_name.py arg1 arg2 arg3 

    "No file to run: 'main.py'" 

coverage run {[full_path_to_module_name}./script_name.py arg1 arg2 arg3 

    Now we are getting somewhere. Coverage is clearly invoked and working, put I get that import error: 

Error message: 
    ImportError: No module named cx_Oracle 

아무도이 문제를 해결할 수 있습니까?

답변

1

좋은 소식은 "python"을 명시 적으로 실행하고 coverage.py를 사용하여 동일한 결과를 얻는 것입니다. 나쁜 소식은 결과가 오류 메시지라는 것입니다.

둘 이상의 파이썬 설치가있는 것처럼 보입니다. 하나는 "./script_name.py"에 의해 발견되고, 다른 하나는 "python ./script_name.py"에 의해 발견됩니다.

는 문제를 진단 script_name.py의 상단에 다음 줄을 추가합니다 :

import sys 
print sys.executable 
print "\n".join(sys.path) 

이 당신을 호출 한 파이썬 실행 파일의 존재 및 모듈에 대한 검색 경로를 표시합니다. 스크립트를 두 가지 방법으로 실행하면 서로 다른 결과가 표시되며 진행 상황을 파악할 수 있어야합니다.

+0

안녕하세요. 귀하의 지원에 감사 드리며 훌륭한 패키지로 잘 마무리되었습니다. 나는이 문제없이 지역적으로 사용했으며 경이로움을 나타냅니다. 이 문제를 해결할 수있는 적절한 곳으로 안내해 줄 수 있는지 궁금합니다. 모듈을 사용하지 않고 "python [script name]"을 호출하면 같은 오류가 발생합니다. 이상적으로 나는 "coverage run/{fulll_path_to_script_name.py}"를 호출하고 실행 시키지만 "No file to run :"/ {fulll_path_to_script_name.py} "오류가 발생합니다. 감사합니다 – mamoma

+0

고민하지 마세요! 문제는 내가 실행중인 환경에 매우 독특하다고 생각하지만 파일에서 몇 가지 경로를 변경하고 다른 경로를 변경해야했습니다. Bit of a maze 그러나 누군가 다른 사람들에게 유익 할지를 정교하게 밝혀야합니다. – mamoma

+0

@NedBatchelder : 비슷한 문제를 겪고 있다고 생각합니다. 당신의 답은 그것을 진단하는 데 도움이되었습니다.나는'virtualenv'와'python -c 'import sys 내에서 돌아가고있다. print (sys.executable) '는 virtualenv 내에서 위치를 알려주지 만'coverage run'을 사용하여 실행하면 시스템 해석기를 보여줍니다. 그 문제를 어떻게 다룰지를 공유하고 현재 활성화 된 virtualenv를 사용하기 위해'커버리지 '를 요청할 수 있습니까? – Tadeck