2013-06-21 3 views
5

몇 시간 동안의 디버깅과 시행 착오 끝에 두 개의 독립적 인 Python 모듈을 가져 오면 그 중 하나의 기능이 작동을 멈추는 것을 발견했습니다.한 파이썬 모듈이 다른 파이썬 모듈을 깨뜨릴 수 있습니까?

import arcpy 
# works 
sde_conn = arcpy.ArcSDESQLExecute(r"C:\temp\test.sde") 

아직 :

import arcpy 
import rtree 
# fails 
sde_conn = arcpy.ArcSDESQLExecute(r"C:\temp\test.sde") 

두 파이썬 모듈은 rtree하고 ESRI의 arcpy, 문제가 모두 Windows 7 및 Windows Server 2008 R2에서 발생 둘 다 내가 (Windows에서 실행 한의, 그리고에 32 비트 및 64 비트 Python 설치).

I logged the issue하지만 한 모듈이 다른 모듈에서 기능을 위반할 수있는 원인은 무엇입니까?

전역 경로를 빠르게 확인하고 시스템 경로를 수정했습니다. 둘 다 DLL에 의존합니다.

다른 어떤 요인이 원인 일 수 있습니까? 사용하는 경우

+1

''rtree import *'와''arcpy import *'에서 충돌하는 함수 이름이있을 때 발생합니다. – karthikr

+3

파이썬은 동적 언어이므로 모듈이 여러 가지 방법으로 동작 할 수 있습니다 심하게하고 다른 것들을 깰. 원숭이 패치 내장 또는 표준 모듈은 다른 모듈을 망칠 수있는 좋은 후보입니다. –

답변

2

그것은 발생합니다

from (module) import * 

두 모듈이 동일한 이름을 가진 기능이있는 경우. @karthikr에서 뻔뻔하게 가져온 것

+1

확실히 첫 번째로 확인해야하지만,이 경우에는 두 가지 간단한 가져 오기가 있습니다. – geographika