2012-03-15 3 views
0

elementFunctions.py로 변경된 baseFunctions.py 파일이 있습니다. parsePeaksMzML.py를 사용하여 elementFunction을 가져 오면 필자에게 이상한 인쇄 문이 생겼다. 특히 elementFunctions.py에 print 문이 없기 때문에. 일식 디버거로 코드를 단계별로는, 실제로가져 오기가 지정한 파일과 다른 파일을 가져 오려고 시도합니다.

내가 이름 변경 일부 이상한 믹스 업이라고 생각
import baseFunctions 

않았다, 대신이 parsePeaksMzML.py에서 말했듯이

import elementFunctions 

일을 보여 주었다 그래서 elementFunctions.py의 모든 코드를 복사하고, 파일을 삭제하고, 새 파일을 만들고, 새 파일의 모든 코드에 붙여 넣었습니다. 아직도 나는 이상한 오류가있다. 폴더를 보면 여전히 baseFunctions.pyc가 있었으므로 삭제했습니다. 코드가 내게 준 다시 실행 :

Traceback (most recent call last): 
    File "/homes/ndeklein/workspace/MS/Trunk/PyMS_dev/pyMS/test/test_parsePeaksMzML.py", line 25, in <module> 
    import parsePeaksMzML 
    File "/homes/ndeklein/workspace/MS/Trunk/PyMS_dev/pyMS/test/parsePeaksMzML.py", line 12, in <module> 
    import elementFunctions 
ImportError: No module named baseFunctions 

어떻게 든 수입 elementFunctions 점은 및 삭제 (I는 단서 이유가 없다)과 elementFunctions.py을 리메이크하는 것은 효과가 없습니다 baseFunctions를 가져옵니다. Google이나 스택 오버플로에서 검색하는 것과 같은 것을 찾을 수 없으므로 여기에서 난처한 상황입니다.

나는 이클립스에 문제가 있다고 의심하지만 확실하지 않다.


편집 : 나는 test_parsePeaksMzML.py에서 parsePeaksMzML.py를 가져올 때이 오류가 발생하지만, 내가 직접 parsePeaksMzML.py를 실행하지 않을 때조차 낯선하게 무엇
.

EDIT2 : 명령 줄에서 실행
같은 오류를 제공합니다 :

-bash-3.2$ python test_parsePeaksMzML.py 
Traceback (most recent call last): 
    File "test_parsePeaksMzML.py", line 26, in <module> 
    import parsePeaksMzML 
    File "/homes/ndeklein/workspace/MS/Trunk/PyMS_dev/pyMS/test/parsePeaksMzML.py", line 12, in <module> 

ImportError: No module named baseFunctions 
-bash-3.2$ 
+0

Eclipse IDE에서 Project/Clean을 수행 한 후에 무슨 일이 일어나는지를 게시하십시오. – wberry

+0

동일한 오류가 계속 발생합니다 –

+0

코드를 독립적으로 실행하여 IDE의 책임 여부를 테스트 할 수 있습니다.결과를보고하십시오. IDE 또는 가져 오기의 문제를 해결할지 여부를 알 수 있습니다. – wberry

답변

1

당신이 파일의 이름을 변경 한 경우, 아마 당신은 당신의 작업 공간 일부 오래 된 .pyc 여운이있다. Eclipse에서 PyDev 플러그인을 사용하고 있다고 가정합니다. 나는 그것을 잠시 사용하지 않았지만, 당신은 Project -> Clean을 할 수 있어야합니다. 그래도 도움이되지 않으면 작업 영역의 모든 .pyc 파일을 수동으로 지우십시오.

설명하는 증상이 매우 이상하므로 문제가 무엇인지 100 % 확신하지 못합니다. 그럼에도 불구하고 작업 영역을 정리하고 거기에서 어떤 일이 진행되는지 알려주세요.

+0

처음에는 파일의 이름을 변경했지만 작동하지 않을 때는 코드를 복사하고 파일을 삭제 한 다음 코드를 새로 만든 파일에 넣었습니다. 폴더에서 .pyc 파일을 모두 제거하고 내장 파일을 지우지 만 여전히 같은 오류가 발생합니다. –

+0

에는 parsePeaksMzML.pyc 파일이 있는데, 내가 보지 않은 폴더 (어째서 왜 거기에 있었는지 또는 왜 그 파일을 가져온 이유인지 모름)에 문제가 해결되면 삭제됩니다. 감사. –

1

.pyc 개의 파일 중 모두를 삭제하려고 시도하고 파일이 지워지는지 확인하십시오. 당신이 예상과 다른 소스에

  • 귀하의 $PYTHONPATH 점 : 그렇지 않으면, 여기에 몇 가지 가능성이 있습니다. (이것은 전체 설명이 아닐 수도 있지만)
  • elementFunctions/__init__.py 내의 코드는 baseFunctions을 가져 오려고합니다.
  • 코드는 exec 문을 사용하여 가져 오기를 수행하거나 내장 된 __import__ 함수를 사용하여 baseFunctions을 동적으로 가져옵니다 (이로 인해 지시문 소스가 찾기 어렵게 될 수 있음).
+0

결국 .pyc 파일이었습니다. 고마워요. –

관련 문제