經過幾個小時的調試和反覆試驗,我發現導入兩個獨立的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 *
:當使用
它發生在你'從rtree導入*','從arcpy導入*''並且有相互衝突的函數名''時 – karthikr
Python是一種動態語言,模塊可以有很多行爲方式嚴重並打破其他的東西。猴子修補內置插件或標準模塊是適合其他模塊的補充。 –