2013-06-21 25 views
5

經過幾個小時的調試和反覆試驗,我發現導入兩個獨立的Python模塊導致其中一個函數停止工作。一個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") 

兩個Python模塊是rtree和ESRI的arcpy,這兩個我已經在Windows上運行(均爲Windows 7和Windows Server 2008 R2上出現的問題,並在32位和64位Python安裝)。

logged the issue,但我想知道一個模塊在另一個模塊中打破功能的可能原因是什麼?

我對全局變量進行了快速檢查,並修改了系統路徑。兩者都依賴於DLL。

還有哪些其他因素可以負責?如果這兩個模塊具有相同名稱的功能

from (module) import * 

:當使用

+1

它發生在你'從rtree導入*','從arcpy導入*''並且有相互衝突的函數名''時 – karthikr

+3

Python是一種動態語言,模塊可以有很多行爲方式嚴重並打破其他的東西。猴子修補內置插件或標準模塊是適合其他模塊的補充。 –

回答

2

它發生。 從@karthikr無恥地採取

+1

這絕對是檢查的第一件事,但在這種情況下,我有兩個簡單的進口 – geographika

相關問題