99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

Win7+Python2.7安裝GDAL:源碼編譯與MSI兩條路通通走通

Win7+Python2.7安裝GDAL:源碼編譯與MSI兩條路通通走通 簡(jiǎn)介針對(duì) Windows 7 64 位平臺(tái)下 Python 2.7 安裝 GDAL 的教程文檔面向需要使用 GDAL 處理地理空間數(shù)據(jù)的開發(fā)者特別是初次接觸時(shí)經(jīng)常遇到編譯與依賴問題的用戶。文檔詳細(xì)梳理了安裝前的環(huán)境準(zhǔn)備包括 Visual Studio 2010、GEOS 3.3.8 與 Python 2.7并對(duì)比介紹了源碼編譯與官方 MSI 安裝兩種方案清晰標(biāo)注了操作命令與目錄切換等關(guān)鍵細(xì)節(jié)。文中還給出了 swig.exe 未安裝時(shí)環(huán)境變量的配置方法以及 DLL load failed 時(shí) bin 目錄的添加路徑方便讀者對(duì)照操作。資源僅含 1 個(gè) docx 文檔大小約 95KB內(nèi)容涵蓋環(huán)境配置、兩種安裝路徑、安裝結(jié)果驗(yàn)證以及常見錯(cuò)誤排錯(cuò)既有操作步驟又有附錄錯(cuò)誤表便于逐項(xiàng)排查。整個(gè)安裝流程經(jīng)過真實(shí)環(huán)境驗(yàn)證排錯(cuò)思路完整按文檔操作可少走彎路。已有 628 人瀏覽學(xué)習(xí)對(duì)計(jì)劃在舊版 Windows 與 Python 環(huán)境中部署 GDAL 的用戶具有直接參考價(jià)值可有效節(jié)省自行摸索的時(shí)間。1. 老機(jī)器上裝 GDAL源碼編譯與 MSI 安裝兩條路我都走通了在 Win7 64 位這臺(tái)還在服役的老機(jī)器上給 Python 2.7 裝 GDAL是我最近做過最折騰的事不是缺 swig 就是找不到 Vcvarsall.bat好不容易裝上import gdal 又開始報(bào) DLL 加載失敗。我把源碼編譯和官方 MSI 兩條路線都完整走通以后最大的體會(huì)是別盲目追新GDAL 1.9.2 在 2013 年的環(huán)境里遠(yuǎn)比 1.11.0 穩(wěn)網(wǎng)上資料多到能讓你迷路但踩坑記錄也更完整。這份資源解決的是兩件事一是把 GDAL 的 C 核心裝好二是讓 Python 2.7 能 import gdal并順利讀取柵格數(shù)據(jù)。如果你跟我一樣在 Win7 64 位下用 VS2010 開發(fā)或者想快速用上測(cè)繪、遙感里的 GDAL 工具這篇筆記里的每一步命令、每一處環(huán)境變量都能讓你少走半天彎路。適合那種“機(jī)器不能換、Python 版本不能升、但功能必須跑起來”的場(chǎng)景。2. 安裝前的預(yù)備工作版本搭配、環(huán)境變量和 x64 命令提示符2.1 版本搭配GDAL 1.9.2 不是越老越好是剛剛好在開裝之前先把這堆版本的依賴關(guān)系捋清楚。GDAL 本身是一個(gè) C 庫(kù)Python 要調(diào)用它不是直接通過 ctypes而是通過 SWIG 生成的包裝層。這個(gè)包裝層在編譯時(shí)會(huì)調(diào)用 Python.h 和 Python 的導(dǎo)入庫(kù)同時(shí)要鏈接到 gdal 的核心 DLL。也就是說你現(xiàn)在用的 Python 是哪一版、VS 是哪一版、GDAL 源碼是哪個(gè)版本三者必須能對(duì)上號(hào)。我一開始圖新鮮選了 GDAL 1.11.0結(jié)果在編譯 swig 包裝時(shí)遇到一個(gè)關(guān)于gdal_version.h宏定義錯(cuò)誤滿世界找資料只找到一篇博客而且那是針對(duì) 1.9.2 的。換回 1.9.2 后同樣的操作一次通過。這個(gè)版本的“資料多”本身就是最大的優(yōu)勢(shì)——遇到問題你能快速定位到你當(dāng)前版本而不是在一個(gè)泛泛的“新版”下面猜答案。GEOS 3.3.8 是個(gè)空間幾何運(yùn)算庫(kù)GDAL 的 OGR 模塊在編譯時(shí)可以鏈接它。如果只是做柵格讀寫的安裝不裝 GEOS 也能跑但一旦你后續(xù)要處理矢量相交、緩沖區(qū)這類操作缺少 GEOS 的 GDAL 會(huì)在運(yùn)行時(shí)直接報(bào)“GEOS support not enabled”。所以我在安裝時(shí)把 GEOS 也一并準(zhǔn)備好。VS2010 則是這一切的編譯基石它提供 nmake 程序維護(hù)工具、C 編譯器和 vcvarsall.bat 批處理。裝了 VS2010 但不裝 VC 組件后面編譯會(huì)報(bào)“找不到 cl.exe”這一點(diǎn)很容易被忽略。另一個(gè)需要提前決定的是走源碼編譯還是 MSI。源碼編譯需要 VS2010 和 swig適合想了解 GDAL 架構(gòu)的人MSI 裝起來快但沒法看到中間產(chǎn)物。我這次是兩條都走了所以后續(xù)章節(jié)會(huì)分別講。提前決定路線能幫你明確安裝順序避免裝到一半才想起來缺工具。我把這組版本整理成一張表你對(duì)著匹配能省掉很多后續(xù)的“找不到頭文件”問題組件推薦版本作用注意事項(xiàng)操作系統(tǒng)Win7 64 位目標(biāo)平臺(tái)命令提示符要用 x64 兼容版否則環(huán)境變量不完整Visual Studio2010編譯工具鏈必須包含 VC 組件提供 nmake 和 cl.exeGDAL1.9.2核心地理數(shù)據(jù)抽象庫(kù)可選 1.11.0但 1.9.2 踩坑資料更多GEOS3.3.8空間幾何運(yùn)算庫(kù)編譯 GDAL 時(shí)可選依賴建議安裝Python2.7腳本環(huán)境注意是 32 位還是 64 位需與 GDAL DLL 位數(shù)一致SWIG2.10.0生成 Python 包裝代碼源碼編譯路線必需MSI 路線不需要這里要特別說一句 Python 位數(shù)的問題。Win7 64 位系統(tǒng)可以裝 32 位或 64 位的 Python 2.7而我最終用的是 32 位版本因?yàn)?GDAL 1.9.2 在 Win7 上常見的預(yù)編譯 DLL 是 32 位。如果你裝了 64 位 Python而手頭只有 32 位 gdal192.dllimport 時(shí)照樣報(bào)“找不到指定的模塊”。所以選版本時(shí)把 Python 位數(shù)和 GDAL 的位數(shù)保持一致比糾結(jié) GDAL 大版本更關(guān)鍵。2.2 用對(duì)命令提示符為什么普通 cmd 跑不了 nmake普通 cmd 窗口里沒有 nmake、cl.exe 這些編譯工具的環(huán)境變量。nmake 是 VS 自帶的程序維護(hù)工具它從 makefile.vc 里讀取編譯規(guī)則而 makefile.vc 里寫死了要調(diào)用 cl.exe 以及一堆 include/lib 路徑。這些路徑只有在執(zhí)行過 vcvarsall.bat 之后才會(huì)被設(shè)置到當(dāng)前會(huì)話中。VS2010 的“Visual Studio x64 兼容工具命令提示符”就是預(yù)先調(diào)好 vcvarsall.bat 并讓它以 x64 目標(biāo)架構(gòu)配置環(huán)境變量的一個(gè)快捷方式。我試過在普通 cmd 里手動(dòng) cd 到 VC 目錄運(yùn)行vcvarsall.bat x64偶爾能生效但一旦目錄帶空格或路徑有特殊字符就會(huì)出錯(cuò)而快捷方式不存在這個(gè)問題。正確的打開方式是點(diǎn)“開始 → 所有程序 → Microsoft Visual Studio 2010 → Visual Studio Tools → Visual Studio x64 兼容工具命令提示符”然后右鍵選擇“以管理員身份運(yùn)行”。為什么要管理員權(quán)限因?yàn)楹罄m(xù) nmake 會(huì)把生成的文件寫到 swig 目錄下有些目錄權(quán)限不夠會(huì)拒絕寫而且 Python 的 setup.py install 要往 C:\Program Files (x86)\Python27\Lib\site-packages 里寫 .py 和 .pyd 文件非管理員會(huì)報(bào)權(quán)限錯(cuò)誤。打開后先把目錄切換到 GDAL 源碼的 swig 子目錄假設(shè)解壓在 C:\OGC\GDAL192\gdal-1.9.2cd C:\OGC\GDAL192\gdal-1.9.2\swig然后驗(yàn)證環(huán)境是否就緒echo %VCINSTALLDIR%如果輸出了類似C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC的內(nèi)容說明編譯環(huán)境已經(jīng)有效若為空你需要重新用上面的快捷方式打開別繼續(xù)硬跑。除了快捷方式你還可以在普通 cmd 里執(zhí)行call C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat x64但路徑中的空格容易被轉(zhuǎn)義所以我不推薦。而且手動(dòng)調(diào)用無法獲得 VS 完整的內(nèi)部變量比如_VSPROMPT。用自帶快捷方式最穩(wěn)。2.3 配置 Path提前給 swig 和 gdal192.dll 找好家無論走源碼編譯還是 MSI 安裝最后系統(tǒng)都得能找到 swig.exe 和 gdal192.dll。Swig 是源碼編譯路線的外部工具下載 swigwin-2.10.0 解壓后把 swig.exe 所在目錄比如 C:\swigwin-2.10.0加入系統(tǒng)環(huán)境變量 Path。GDAL 的 bin 目錄在源碼編譯時(shí)是C:\OGC\GDAL192\gdal-1.9.2\bin在 MSI 安裝時(shí)是C:\Program Files\GDAL192或你自己指定的安裝路徑下的 bin。操作步驟是右擊“計(jì)算機(jī) → 屬性 → 高級(jí)系統(tǒng)設(shè)置 → 環(huán)境變量”在“系統(tǒng)變量”中找到 Path點(diǎn)“編輯”把這兩個(gè)目錄追加進(jìn)去用分號(hào)與原有項(xiàng)分隔。之所以要提前配是因?yàn)?Python 在 import gdal 時(shí)通過_gdal.pyd加載 gdal192.dllWindows 的 DLL 搜索順序包括應(yīng)用程序目錄、系統(tǒng)目錄、當(dāng)前目錄以及 Path 中列出的目錄。如果不加 bin就一定會(huì)出現(xiàn)“DLL load failed: 找不到指定的模塊”。這個(gè)錯(cuò)誤我在源碼編譯和 MSI 兩條路線里都遇到了屬于共性問題不如一開始就堵死。配置完記得把命令提示符窗口關(guān)閉重開讓新的 Path 在該會(huì)話中生效。你可以在新窗口里輸入where swig檢查 swig 是否被識(shí)別如果打印出完整路徑說明 Path 配置成功。環(huán)境變量修改后不僅命令行窗口要重開如果 Python 是直接從 IDLE 啟動(dòng)的IDLE 也要重啟否則在 IDLE 里運(yùn)行 import gdal 仍然會(huì)報(bào)同樣的 DLL 錯(cuò)誤。這個(gè)細(xì)節(jié)我差點(diǎn)漏掉。另外如果你還裝了 Python 的第三方 IDE它們同樣會(huì)緩存環(huán)境變量最好全部重啟一遍。3. 源碼編譯路線nmake 生成綁定、setup.py 安裝與三處必踩的坑3.1 生成 Python 包裝nmake /f makefile.vc python 和 swig 的依賴源碼編譯路線的第一步是在 swig 目錄下執(zhí)行 nmake讓 makefile.vc 幫你生成 Python 包裝代碼。在 x64 兼容工具命令提示符中先確保當(dāng)前目錄是C:\OGC\GDAL192\gdal-1.9.2\swig然后輸入nmake /f makefile.vc python這條命令的行為是先更新 setup.ini 寫入 GDAL 的安裝路徑然后 cd 到 python 子目錄調(diào)用 swig.exe 去解析 gdal 的 .i 接口定義文件生成gdal_wrap.c和osgeo/gdal.py等一整套包裝產(chǎn)物。/f參數(shù)指定 makefile 文件名因?yàn)槟J(rèn)文件名是 makefile而 GDAL 把 Windows 專用的規(guī)則放在 makefile.vc 里所以必須顯式指定。我第一次跑這條命令時(shí)卡在了swig.exe 不是內(nèi)部或外部命令。這就是因?yàn)闄C(jī)器上根本沒裝 SWIG。SWIG 是一個(gè)獨(dú)立的代碼生成工具GDAL 的源碼里只有接口文件并不附帶 swig.exe。解決辦法是下載 swigwin-2.10.0這個(gè)版本在 Python 2.7 時(shí)代是穩(wěn)定選擇。解壓后把 swig.exe 所在的整個(gè)目錄加進(jìn) Path具體方法見 2.3。配置完成后重新打開命令提示符先where swig確認(rèn)能找到再重新執(zhí)行 nmake 命令。這次 nmake 會(huì)在 python 子目錄下生成一堆 .c 和 .py 文件如果沒有任何 fatal error說明包裝代碼生成成功。我建議你在執(zhí)行后查看一下swig/python/osgeo/目錄正常情況下里面會(huì)有_gdal.pyd的骨架文件注意此時(shí)還沒編譯成真正的擴(kuò)展還有g(shù)dal.py、ogr.py等純 Python 包裝層文件。nmake 只負(fù)責(zé)從接口文件生成 C 源碼真正的 .pyd 要靠接下來的 setup.py 編譯。3.2 編譯擴(kuò)展模塊setup.py build 與 Vcvarsall.bat 的經(jīng)典錯(cuò)誤包裝代碼生成完畢就要在swig/python目錄下編譯 Python 擴(kuò)展。先進(jìn)入該目錄cd C:\OGC\GDAL192\gdal-1.9.2\swig\python然后運(yùn)行python setup.py build python setup.py installsetup.py build的作用是調(diào)用 distutils把上一步生成的 .c 文件編譯成_gdal.pyd然后復(fù)制到build\lib.win32-2.7這樣一個(gè)臨時(shí)目錄。setup.py install則把生成的模塊和一堆 .py 文件安裝到 Python 的 site-packages 目錄里也就是C:\Program Files (x86)\Python27\Lib\site-packages\osgeo。這里幾乎所有人都會(huì)遇到unable to find Vcvarsall.bat報(bào)錯(cuò)。原因在于 Python 2.7 的 distutils 默認(rèn)去尋找 VS2008VC9的編譯環(huán)境因?yàn)?CPython 2.7 官方是用 VS2008 編譯的。而我機(jī)器上裝的是 VS2010VC10distutils 在注冊(cè)表里找不到 VS2008 對(duì)應(yīng)的 Vcvarsall.bat就直接罷工。網(wǎng)上有好幾種解法有人用 mingw我試了因?yàn)?GDAL 的 C 代碼里用了很多微軟特有的約定mingw 根本編不過果斷放棄。一個(gè)輕量級(jí)的簡(jiǎn)單方案是設(shè)置環(huán)境變量把 VS2010 的路徑指給 VS90COMNTOOLSset VS90COMNTOOLS%VS100COMNTOOLS%VS100COMNTOOLS是 VS2010 安裝時(shí)自動(dòng)設(shè)置的系統(tǒng)環(huán)境變量指向其工具目錄比如C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Tools\。distutils 在找不到 VS2008 時(shí)會(huì)檢查VS90COMNTOOLS我們用這條命令把 VS2010 的工具路徑“偽裝”成 VS2008 的它就能找到 Vcvarsall.bat 了。這個(gè) set 命令只對(duì)當(dāng)前命令行窗口有效所以必須和隨后的 build/install 命令在同一個(gè)窗口里執(zhí)行。執(zhí)行 setup.py build 時(shí)控制臺(tái)會(huì)刷出大量的編譯信息其中夾著一些 warning比如宏重定義、符號(hào)截?cái)噙@些通常不影響最終結(jié)果。關(guān)鍵是看最后有沒有出現(xiàn)error C...或fatal error LNK...。我這次編譯打印了幾十條 warning嚇得我以為失敗后來發(fā)現(xiàn) install 正常import 也能用才知道那些 warning 是 GDAL 源碼里早就存在的跟我們的環(huán)境無關(guān)。所以看到 warning 別慌只要沒有硬錯(cuò)誤就可以繼續(xù)。另外如果 setup.py build 過程中報(bào)找不到 Python.h說明 Python 的 include 目錄沒設(shè)置到位。雖然 distutils 會(huì)自行定位但有時(shí) GDAL 的 makefile.vc 會(huì)在編譯選項(xiàng)中覆蓋 include 路徑此時(shí)需要手動(dòng)指定環(huán)境變量PYTHON_INCLUDE_DIR和PYTHON_LIBRARY。不過 1.9.2 的默認(rèn)配置里一般不會(huì)出這個(gè)問題我在多次嘗試中只在 1.11.0 上遇到過。3.3 install 后 import 報(bào)錯(cuò)DLL 搜索路徑與 bin 目錄的真相setup.py install 成功后在命令提示符里測(cè)試導(dǎo)入python -c import gdal如果看到ImportError: DLL load failed: 找不到指定的模塊這并不代表編譯失敗而是 Python 在導(dǎo)入osgeo._gdal時(shí)找不到 gdal192.dll。_gdal.pyd是一個(gè)動(dòng)態(tài)鏈接庫(kù)它內(nèi)部鏈接了gdal192.dll。Windows 在加載_gdal.pyd時(shí)會(huì)按 DLL 搜索順序去找gdal192.dll而默認(rèn)順序里并不包含 GDAL 編譯產(chǎn)物的 bin 目錄。解決方法是把 bin 目錄加進(jìn) Path。源碼編譯產(chǎn)物的 bin 目錄是C:\OGC\GDAL192\gdal-1.9.2\bin里面有 gdal192.dll、gdalinfo.exe 等一系列可執(zhí)行文件和動(dòng)態(tài)庫(kù)。把它加到系統(tǒng) Path 后重新打開命令行窗口再測(cè)試python -c import gdal這次會(huì)順利通過。如果你用的是 IDLE 或 Spyder配置完 Path 后必須重啟這些編輯器因?yàn)樗鼈儠?huì)緩存環(huán)境變量。我一度在 IDLE 里反復(fù) import 失敗卻在 cmd 里成功就是這個(gè)緩存原因。4. MSI 快速路線下載匹配版本、直接安裝、補(bǔ)一條 Path4.1 下載官方 MSI版本匹配 Python 2.7 和 Windows 位數(shù)的關(guān)鍵如果你不想碰編譯官方提供的 MSI 安裝包就是最省事的路。GDAL 官方有 Windows 預(yù)編譯的 MSI其中包含了 gdal192.dll、命令行工具和 Python 綁定。下載時(shí)要注意兩個(gè)匹配一是 MSI 的版本要對(duì)應(yīng) GDAL 1.9.2或你想要的 1.11.0二是 MSI 的位數(shù)要能與你的 Python 版本匹配。因?yàn)?Python 2.7 在 Win7 64 位下通常裝的是 32 位版本所以你要找標(biāo)記為win32的 MSI而不是amd64。如果裝錯(cuò)安裝過程可能正常但 import gdal 時(shí)一樣會(huì)報(bào) DLL 加載失敗因?yàn)閿U(kuò)展模塊的位數(shù)和 Python 解釋器的位數(shù)不一致。雙擊 MSI 后會(huì)進(jìn)入標(biāo)準(zhǔn)的安裝向?qū)?。我一般選擇默認(rèn)安裝路徑也就是C:\Program Files\GDAL192這個(gè)路徑后面還要用到。安裝向?qū)Ю锶绻霈F(xiàn)“Python bindings”或“osgeo”之類的選項(xiàng)一定要確保它是啟用的。有些精簡(jiǎn)版 MSI 會(huì)默認(rèn)取消 Python 綁定那樣裝完只有核心庫(kù)Python 里并沒有 osgeo 模塊。如果你不確定可以在安裝后打開C:\Program Files\GDAL192\python目錄里面至少要有 osgeo 文件夾才算正常。4.2 安裝順序與權(quán)限先裝 Python 2.7再裝 MSI用管理員安裝MSI 安裝有一個(gè)容易被忽略的依賴順序必須先把 Python 2.7 裝好再執(zhí)行 GDAL 的 MSI。因?yàn)?MSI 里的 Python 綁定是通過掃描注冊(cè)表里的 Python 安裝信息來定位 site-packages 的如果 Python 還沒裝綁定組件就會(huì)靜默跳過。我見過有人先裝 GDAL 后裝 Python結(jié)果 GDAL 提示安裝成功可 Python 里什么都沒有只能重裝。另外MSI 安裝到C:\Program Files需要管理員權(quán)限如果你的系統(tǒng)開啟了 UAC雙擊安裝時(shí)一定要右鍵“以管理員身份運(yùn)行”否則可能在最后寫入注冊(cè)表時(shí)失敗。安裝完成后我會(huì)第一時(shí)間檢查C:\Program Files (x86)\Python27\Lib\site-packages\osgeo這個(gè)目錄是否存在。如果存在且里面有g(shù)dal.py、_gdal.pyd說明綁定已經(jīng)裝好。如果只有g(shù)dal.py而沒有_gdal.pyd說明 MSI 沒識(shí)別到 Python 的擴(kuò)展模塊多半是 Python 安裝的是 64 位而你下載了 32 位 MSI或者反過來。4.3 安裝后檢查Path 修正與 DLL 搜索順序MSI 安裝完成后打開命令行窗口輸入python -c from osgeo import gdal; print(gdal.VersionInfo())如果打印出一串版本號(hào)比如1910說明安裝成功。如果出現(xiàn)ImportError: DLL load failed: 找不到指定的模塊多半還是 Path 里沒有 gdal192.dll 的目錄。MSI 默認(rèn)把 gdal192.dll 放在C:\Program Files\GDAL192你需要把這個(gè)目錄加到系統(tǒng) Path。另外MSI 安裝的 Python 模塊在C:\Program Files (x86)\Python27\Lib\site-packages\osgeo如果這里沒有生成可能 MSI 在安裝時(shí)沒能判斷出 Python 安裝位置。這時(shí)可以手動(dòng)把C:\Program Files\GDAL192\python\osgeo復(fù)制到 site-packages 下或者重新安裝 MSI 并確保 Python 2.7 已預(yù)先安裝。即使 MSI 安裝時(shí)勾選了“Add GDAL to PATH”我也建議用where gdal192.dll再確認(rèn)一次。因?yàn)橛行┌姹镜?MSI 只把gdalinfo.exe所在的 bin 目錄加入 Path卻漏掉了gdal192.dll本身的目錄兩者雖然通常在同一目錄但偶爾有例外。執(zhí)行where gdal192.dll如果輸出C:\Program Files\GDAL192\gdal192.dll說明系統(tǒng)能找到如果提示找不到就手動(dòng)補(bǔ)路徑。4.4 源碼編譯 vs MSI我為什么兩條都留下來了我在這次安裝中把兩條路線都跑了一遍不是為了湊字?jǐn)?shù)而是它們?cè)诤罄m(xù)維護(hù)中有不同的價(jià)值。源碼編譯雖然前置條件多但你能拿到全套中間文件比如 gdalinfo.exe 可以直接在命令行用而且當(dāng)你需要改動(dòng) GDAL 的源碼做二次開發(fā)時(shí)一切都在手邊。MSI 安裝快適合只想要一個(gè)能用的 Python 包、不愿意折騰編譯的人。我把兩者的差異列成一張表你根據(jù)自己的能力邊界做選擇對(duì)比項(xiàng)源碼編譯MSI 安裝編譯耗時(shí)5-10 分鐘2 分鐘環(huán)境要求VS2010、SWIG、GEOS只需要 Python 2.7踩坑數(shù)量多但資料全少但資料零散可控性可改源碼、可調(diào)編譯參數(shù)黑盒只能裝固定版本適合人群C 基礎(chǔ)好、要做二次開發(fā)用 Python 做批處理、快速上手就我個(gè)人的習(xí)慣遇到新機(jī)器我會(huì)先用 MSI 裝一個(gè)能用的環(huán)境確認(rèn)項(xiàng)目能跑如果后面要深入 GDAL 源碼或者定制插件再回頭用源碼編譯把中間產(chǎn)物保留下來。兩條路線共享一份環(huán)境變量配置所以第一遍把 Path 弄好第二遍會(huì)順很多。另外MSI 安裝后osgeo目錄里的_gdal.pyd和gdal192.dll位置可能不同有時(shí)候 DLL 在 Program Files\GDAL192而 pyd 在 site-packages\osgeo。Python 導(dǎo)入 pyd 后pyd 會(huì)去找 DLL如果找不到就會(huì)報(bào)錯(cuò)。所以即便 MSI 安裝時(shí)添加了 Path也最好用where gdal192.dll檢查一下。5. 安裝避坑指南四個(gè)報(bào)錯(cuò)現(xiàn)場(chǎng)的原因與修復(fù)步驟5.1 swig.exe 不是內(nèi)部或外部命令現(xiàn)象執(zhí)行nmake /f makefile.vc python時(shí)控制臺(tái)提示“swig.exe 不是內(nèi)部或外部命令也不是可運(yùn)行的程序或批處理文件”nmake 立即停止。原因系統(tǒng)沒有安裝 SWIG或者安裝后沒把 swig.exe 所在目錄加入環(huán)境變量 Path。GDAL 源碼只提供接口文件swig 是獨(dú)立的生成器需要額外下載。解決下載 swigwin-2.10.0解壓到一個(gè)無空格路徑如 C:\swigwin-2.10.0。將C:\swigwin-2.10.0添加到系統(tǒng) Path。重新打開命令提示符先where swig確認(rèn)識(shí)別成功再重跑 nmake。5.2 unable to find Vcvarsall.bat現(xiàn)象執(zhí)行python setup.py build時(shí)distutils 報(bào) “error: Unable to find vcvarsall.bat”編譯直接終止。原因Python 2.7 的 distutils 默認(rèn)按照 VS2008 編譯的 CPython 來找編譯器。機(jī)器上裝的是 VS2010注冊(cè)表里沒有 VS2008 的 Vcvarsall.bat 路徑導(dǎo)致 distutils 放棄查找。解決用命令set VS90COMNTOOLS%VS100COMNTOOLS%把 VS2010 的工具路徑偽裝成 VS2008 的。設(shè)置后在同一窗口中重新執(zhí)行python setup.py build和python setup.py install。注意這個(gè) set 只對(duì)當(dāng)前窗口有效所以每一步都要在同一個(gè)窗口里連貫執(zhí)行。5.3 ImportError: DLL load failed: 找不到指定的模塊現(xiàn)象安裝完成后import gdal或from osgeo import gdal報(bào)“ImportError: DLL load failed: 找不到指定的模塊”。這個(gè)問題在源碼編譯和 MSI 方案中都出現(xiàn)過。原因Python 導(dǎo)入_gdal.pyd時(shí)系統(tǒng)搜索不到它依賴的gdal192.dll。這只說明 DLL 搜索路徑不完整與 Python 代碼本身無關(guān)。解決把 GDAL 的 bin 目錄加入系統(tǒng) Path。源碼編譯時(shí)是C:\OGC\GDAL192\gdal-1.9.2\binMSI 安裝時(shí)是C:\Program Files\GDAL192。加完 Path 后找出你自己使用的環(huán)境如果是命令行就重開窗口如果是 IDLE 就重啟 IDLE再試導(dǎo)入。5.4 編譯期間 error C1083: 找不到 gdal_version.h 或 gdal.h現(xiàn)象setup.py build 時(shí)輸出類似fatal error C1083: 無法打開包括文件: gdal.h: No such file or directory編譯停止。原因GDAL 的源碼中Python 綁定的編譯需要依賴核心庫(kù)的頭文件。如果 makefile.vc 里的 include 路徑?jīng)]有指向 gdal 源碼的gcore和port目錄就會(huì)找不到頭文件。常見于路徑中含空格、或者解壓目錄不是預(yù)期路徑的情況。解決確認(rèn) GDAL 源碼解壓路徑中沒有空格推薦直接放 C:\OGC\GDAL192\。然后檢查 swig\python 目錄下的 setup.py 是否有寫死相對(duì)路徑的選項(xiàng)必要時(shí)在編譯前設(shè)置環(huán)境變量GDAL_INCLUDEC:\OGC\GDAL192\gdal-1.9.2\gcore。這個(gè)坑在默認(rèn)官方源碼包中較少出現(xiàn)但我在精簡(jiǎn)版源碼包里踩到過。6. 裝完怎么驗(yàn)證先跑 gdalinfo再寫三行 Python 讀柵格6.1 用 gdalinfo 命令行工具驗(yàn)證核心庫(kù)裝完 GDAL 后第一件事不是急著寫 Python而是先跑命令行工具。打開任意命令提示符現(xiàn)在普通 cmd 也可以了因?yàn)榄h(huán)境變量已經(jīng)配好輸入gdalinfo --version如果輸出類似GDAL 1.9.2, released 2012/10/08的版本信息說明核心庫(kù)和命令行工具都能工作。再拿一個(gè)真實(shí)的 TIFF 文件試試gdalinfo C:\your\path\test.tif在輸出里能看到影像尺寸、波段數(shù)、投影坐標(biāo)、地理范圍等元數(shù)據(jù)。如果命令找不到 gdalinfo說明 GDAL 的 bin 目錄不在 Path 中回到 2.3 補(bǔ)一遍。6.2 用 Python 讀取柵格元數(shù)據(jù)和第一個(gè)波段命令行工具正常后再驗(yàn)證 Python 綁定。寫一個(gè)十幾行的腳本from osgeo import gdal import sys # 打開柵格文件 ds gdal.Open(rC:\your\path\test.tif) if ds is None: sys.exit(無法打開文件檢查路徑和GDAL安裝) # 讀取元數(shù)據(jù) print(尺寸: {}x{}.format(ds.RasterXSize, ds.RasterYSize)) print(波段數(shù): {}.format(ds.RasterCount)) # 讀取第一個(gè)波段的數(shù)據(jù) band1 ds.GetRasterBand(1) arr band1.ReadAsArray() print(第一個(gè)波段數(shù)組形狀:, arr.shape) print(數(shù)組最大值:, arr.max())gdal.Open返回一個(gè) Dataset 對(duì)象RasterXSize和RasterYSize分別代表列數(shù)和行數(shù)。GetRasterBand(1)取得第一個(gè)波段ReadAsArray()把柵格數(shù)據(jù)讀成 NumPy 二維數(shù)組方便做統(tǒng)計(jì)和裁剪。如果這一步有輸出說明 Python 已經(jīng)成功調(diào)起底層 GDAL DLL。6.3 一個(gè)常用技巧用from osgeo import gdal不要寫import gdal很多舊教程會(huì)讓你直接import gdal但在 GDAL 1.9.2 的 Python 綁定里這個(gè)寫法會(huì)觸發(fā) deprecation_warn。更規(guī)范的是from osgeo import gdal它直接進(jìn)入真正的綁定模塊不經(jīng)過兼容層。我一開始用import gdal也跑通了但總會(huì)在控制臺(tái)看到一個(gè) FutureWarning后來改成from osgeo import gdal后干凈很多。這也算是一個(gè)容易被忽略的小細(xì)節(jié)。從那以后我每次在新機(jī)器上裝 GDAL都會(huì)強(qiáng)制走一遍 gdalinfo --version 和這個(gè)十幾行的讀柵格腳本確認(rèn)環(huán)境和數(shù)據(jù)鏈路都通了才敢繼續(xù)寫業(yè)務(wù)代碼。希望這個(gè)習(xí)慣也幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
国外亚洲成AV人片在线观看| 九九机热| 婷婷永久在线| 91无码视频| 久久三级视频| 高清视频一区| 五月天久久色| 五月丁香六月综合激情| 秋霞三级色戒| SS丁香五月婷婷| 中字幕视频在线永久在线观看免费| 亚洲无码www| 99精品在这里| 日本久久人| 精品色情一区二区三区四区| 可以免费观看的av| 天天色99| 日本乱子人伦在线视频| 襙比视频| 天天日天天做天天舔| 丁香六月激情| 深爱激情av| 久9热插入| 激情综合激情综合| 婷婷丁香色五月| 九九热超碰| 思思久久精品| 六月丁香婷婷在线波多| 婷婷无码视频| 人人摸人人| 五月色丁香成人| 91视频精品99| 亚洲超级碰| 精品人妻伦九区久久AAA片| 亚洲婷婷丁香五月| 九月色婷婷婷| 狠狠干青青草| 丁香狠狠| 五月天婷婷色在线视频免费观看| 最近中文字幕2019视频1| 先锋资源婷婷| 久久天天| 99亚洲视频| 深爱婷婷色| www.91久久| 久久综合9| 色插综合网| 色色五月天com| 无遮羞AV| 久久日婷婷| 六月丁香六月婷婷欧美| www久| 精品欧美性爱超级爽| 日韩成人综合网| 亚洲十月婷婷综合| 久久这里99| 欧美日韩成人| 精品无码av丁香五月激情| 极品人妻VIDEOSSS人妻| 免费黄色视频网址| 五月婷婷六月色| www.99热视频| 另类在线| 五月丁香婷色| 亚洲综合色成丁香五月色| A A色色| 久久9精品| 五月综合激情啪啪啪啪啪| 99热在线看片| 人妻精品在线| WWW久| 婷婷五月天黄色| 五月婷婷九九热| 五月天综合视频网| 99色婷婷| 狠狠色综合五月人人| 超碰在线人妻| 99热这里只有精品86| 丁香五月亚洲AV| 亚洲综合婷婷| 夜色综合网| 狠狠擼综合| 欧洲不卡视频| 色五月激情五月丁香五月婷婷啪啪综合 | 91操操| 99这里只有精品|v| 亚洲精品一区无码A片| 超碰9| 99毛片| 超碰免费人人| av操逼网| 五月天婷婷社区久久综合| 性av| 色三级色三级| 色色色欧美| 亚洲色vA| 国产精品热搜丁香五月婷婷| 亚洲另类婷婷五月丁香在线播放| 色性综合| 性 色 婷婷| 国产在线视频1234| www.久久爱.com| 五月天婷婷色在线视频免费观看 | 丁香五月激情综合在线观看| 99操| 五月婷婷 婷婷五月 一区二区 久久久| 97成人丁香婷婷| 激情婷婷五月天| WWW.桔色成人.COM入口| 天天舔天天摸天天射| 色婷婷综合电影| 久久网思思| 无码九九| 激情内射人妻1区2区3区| 伊人久久五月天| www.亚洲激情| z色五月播播久久| 亚洲操逼片| 久久a热| 九久9精品| 婷婷99| 丁香五月激情啪啪综合| 无码一级片| 日本综合色色| 综合激情肏逼网| 99色在线视频| 五月激情网站| 亚美欧色影院| 国产 码在线成人网站| 久久久久久性爱视频| 色五月婷婷激情五月| 99这里只有精品视频免费| 日韩AV在线免费| 色播色丁香五月| 成人在线网址| 婷婷丁香五月综合| 丁香八月综合激情| 翔田千里无码| 97干在线| 欧美精品999| 欧美久久婷婷| 综合网激情| 91碰免费视频| 婷婷丁香色女人| 天天情天天狠天天透| 久久综合激情五月天| 综合激情五月天| 久99热| 九九热在线视频观看免费10| 一起草Av| 五月婷婷免费视频| 风流少妇A片一区二区蜜桃 | 亚洲天堂AV综合网| 激情涩涩网| 色婷婷狠狠干芒果TV| 五月婷婷激情五月| 色五月激情婷婷| 特黄三级又爽又粗又大| 欧美精品99| 精品久久艹| 亚洲99热| 99在线精品免费视频| 风流少妇A片一区二区蜜桃| 色婷婷另类| 丁香五月婷婷高清| www激情网| 极品人妻VIDEOSSS人妻| 久久一级免费黄色片| 国产成人高清| 激情九月综合| 五月六月播婷婷| 激情五月综合免费| 精品爱欲五| 五月婷丁香在线视频在线| 丁香婷停五月激情综合深爱| 色五月亚洲五月天| 99在线精品免费视频| 综合网视频| 婷婷五月丁香六月| 色婷婷内射| 五月婷婷婷丁香播| 91在线日本| 婷婷六月五月| 伊人青涩网| 五月婷婷丁香色吧网| 色99在线观看| av最新在线| 五月综合缴情网| 精品网站:999WWW| 激情五月天网页| 大香蕉久久视频久久视频 | 开心激情五月天网| 五月婷婷www| 大地资源色婷婷视频在线| 伊人婷婷五月天| 国产AV一区二区三区最新精品| 激情六月天| 久久性爱视频免费| 99精品九九| 色爱五月天| 九九精品亚洲| 青青草国产亚洲精品久久| 九色PORNY自拍成人精彩视频| 色五月婷婷大| 大香蕉综合视频在线| 中日韩美欧成人一区二区精品在线| 日韩免费99| 婷婷丁香激情综合色情| 亚洲人妻电影| 久久久久亚洲AV综合| 99在线精品免费视频| 99热精品在线观看| 99久热这里有精品| 久久精品熟女亚洲AV麻豆| 日韩久热| 综合色五月天| 亚洲岛国电影| z色五月播播久久| 五月婷婷,狠狠操| 涩综合网| 超碰久热| 丁香五月天社区婷婷| 伊人久久五月天| 色色色无码| 中文字幕在线日亚洲9| 丁香六月婷婷久久综合| 成人婷婷桔色| 99精品视频在线观看| 超碰三级片| 五月丁香基地| 大香蕉久艹| 日本人妻伦在线中文字幕| 日韩综合网络男女香蕉a片| 99这里有精品| 丁香五月香蕉在线| 182TV亚洲| 日产精品一线二线三线芒果| 亚洲小电影在线观看黄999| 三级成人网站| av大片在线| 夜夜爽天操| 我去色色网五雨天| 国外亚洲成AV人片在线观看| 五月天婷婷在看| 婷婷综合爱| 成人综合视频在线| 日韩性爱AV| 天天草天天摸| 亚洲综合激| 内射 无码 伊人| hd五月婷婷在线| 色色色色色色色五月| 丁香婷婷久久老熟女综合网| 婷婷久综合| 欧美性猛交99久久久久99按摩| 久青操| 国产毛片精品一区二区色欲黄A片 欧美交换配乱吟粗大25P | 亚洲综合婷婷五月| 日本欧美成人片AAAA| 人妻久久婷婷| 91人人操人人爱| 亚洲日韩久久婷婷伊人| 亚洲综合婷婷| 色五月婷婷av| 婷婷伊人综合中文字幕| 最新午夜理论片| 99丁香婷婷综合网| 人人人操 超碰| 淫视馆aV二区一区| 亚洲成人高清在线| 久久XX日本综合| 九九色热| 丁香五月社区| 欧美激情综合色综合| 欧美猛片| 黄网在线播放| 色婷婷五月天成人网| 人妻精品在线| 五月丁香婷婷综合| 婷婷五月图片小说视频| 久久综合色五月| 99riAv1国产在线观看| 五五月五月| 久婷婷五月激情| 激情婷婷综合| 超碰人人妻| 激情丁香五月婷婷| 丁香五月天堂| 久久婷婷五月综合伊人| 天天做天天爱| 中文网av| 日日爽日日| 伍月婷丁香花全集| 婷婷天天婷婷天天澡| 91色综合网| 99爽视频| 久久色频| 五月天亚洲最大成人| 色色婷婷色色| 欧美人人操| 五月天综合图片| 99操九九网| 99精品视频在线观看| 亚洲久久婷婷| 影音先锋91视频| 久久伊人大香蕉| 亚洲AV网站| 欧美va在线观看| 色狠狠色噜噜AV天堂五区消防| 91丨九色丨白浆秘| 一区二区乱码视频| 久热黄色| 99日本精品视频热| 五月丁香777| 伊人99热| 婷婷激情四射五月天| 九九热九九热精品| 中文字幕在线资源| 日韩成人综合网| 亚洲色色五月天| 久草丁香婷婷五月天婷| 综合婷婷五月丁香在线观看| 操碰97| 色五月婷婷激情综合网| 婷婷玖玖丁香| 中文字幕在线日亚洲9| 99色视| 欧美日韩国产一区| 五月天播播综合| 婷婷五月天资源| 五月婷婷六月天| 激情五月婷婷网| 综合天堂AV久久久久久久| 五月婷婷av| 日韩一级片| 亚洲mm免费| 久99久在线| 热九九精品| 综合五月丁香六月婷婷| 日日爽日日操| 看国产探花操逼三级片| 思思色综合网站| 婷婷狠狠操| aaa9区免费在线观看| 亚洲欧洲中文日韩久久AV乱码| 激情五月天综合网| 激情丁香五月天| 91九色国产| 美欧日韩国产成人在战| 91精品国产99久久久久久天美| 99热这里是精品| 99视频免费播放| 99熟女| 综合久久综合久久| 色色五月婷婷久久| 婷婷在线视频| 欲求不满的人妻| 激情文学第四色婷婷丁香五月| 五月婷婷综合色啪首页| 97成人丁香| 热99这里只是精品| 亚洲成人在线综合| 99精品成人无码A片观看金桔| 六月婷婷五月天| 这里只有精品视频免费在线观看| 99国产小视频| 丁香五月天激情| 激情五月六月婷婷| 欧美日韩成卜| 色久女| 天天久久狠狠色综合| 97搞在线| 激情AV网| 91超碰在线播放| 久久这里在精品视频| 精品思思久久| 丁香五月婷婷激情中文| 噜噜网免费视频| 欧美国产一区二区三区| 五月天com| 五月丁香香蕉| 久久人妻超碰一区| 七七九色| 在线天堂9| 色五月婷婷在线观看第一页舔| 色色婷| 天天爱天天做综合| 天天撸夜夜爽| 开心五月网 | 久久停停超碰| 免费超碰在线观看| 五月婷婷啪啪网| 666555。COm毛片| 六月婷婷视频| 超91热| www.99在线| 亚洲啪啪视频| 成人超碰AV| 成人午夜视频精品一区| 色婷婷超碰| 丁香六月婷| 五月丁香激情啪啪网| 久9综合| 久久九九视频网站| 九色自拍| 操日本三片99| 六月色播| 色天使久久综合| 亚洲精品乱码久久久久久综合| 天天日夜夜操五月| 天天插天天干| 五月婷婷亚洲天堂激情在线| 97五月天婷婷| 激情综合五月| 色呦呦免费观看| 99热综合| 五月欧美色色五月| 亚洲啪视频| 婷婷天堂综合| 99爱视频| 91性人人| 亚洲婷婷欧美婷婷| 色五月婷婷AV| 五月激情综合网| 天天肏天天肏天天肏| www.99在线| 婷婷五月天激情视频| 五月综合久久| 五月丁香婷草| 婷婷五月天激情影片| 99网| 国产色99| 99热这里有精品6| 亚洲成人精品三区| www.婷婷.com| 米奇影视五月天| 先锋影音av色五月天资源站| 《亚洲操B久久免费在线观看,亚洲操B久久在线播放》在线播放 - 高清资源 - 97 | 久久久久9久无码视频| 精品成人久久久久久久_一二三四视| 乱岳熟女50岁| 激情综合色五月丁香六月亚洲| 激情九月婷婷| 色5在线| 99精品网| 深爱激情久久| 五月婷婷色欲| 久久色五月天激情小说| 一本大道伊人AV久久综合| 久久色五月| 婷婷五月天成人在线视频| 五月天婷婷在线视频| 婷婷久久在线| 99热在线精品播放| 9精品视频在线观看| 五月永久激情| 婷婷六久久| 噜噜国产| 婷婷五月天激情网| 天天拍夜夜撸| 久久久婷婷色五月资源网| 精品久久人妻| 综合一本道| 婷婷五月天电影在线| 天花AV无码| 色视频色综合91| 五月天色色网站| 婷婷中文字幕| 色情成人五月天| 激情五月四色| 丁香五月天AV| 管管補管管紱| 国产亚洲精品久久久久久郑州| 成人做爰黄A片免费看直播室男男 久草热8精品视频在线观看 | 黄色AAAAAAA| 五月丁香综合中文| 婷婷五月天 偷拍| 欧美成人AAA片一区国产精品| 人妻中文av| 色色色色色色色色五月先| 天堂五月婷婷| 国产精品99久久久久久久女警| 婷婷五月天成人在线视频| 97久久久久| 97色女人在线| 婷婷九月久久| 久青草大香蕉| 婷婷久久五月天丁香| 亚洲乱码日产精品BD在线观看 | 欧美WW在线网| 婷婷久久网| 啪到高潮激情丁香五月| 99热91| 久热这里只有精品在线观看 | 色色无码| 色五月婷婷在线观看| 99热热热99精品婷婷| 亚洲色婷婷婷婷人人爽| 香蕉97碰碰碰欧美| AV在线资源| 五月婷婷激情久久| 婷婷丁香久久网| 国产日比| 久久人人妻| 就爱啪啪婷婷| 亚洲色模骚货| www.激情五月天| 五月丁香六月玩女人| 激情综合五月色在线| 欧洲一区二区| 日韩在线观看网址| 千人斩操逼| 色五月综合婷婷久久综合婷婷久久综合婷婷久久综合婷婷久久 | 黑人熟妇一区二区三区| 操99| 国产日韩精品SUV| 激情五月天开心总和网| 天天操天天国产三级片处女学生妹| 99热99思午夜精品| 先锋资源996| 狠狠高潮精品亚洲1| 操逼123网| 这里只有精品1| 综合久久婷婷| 爆乳熟女-区二区三区| 在线观看中文字幕| 欧美色激情四射| 丁香五月大香蕉AV| 亚洲精99| 天天综合五月天| 狠狠色综合网| 亚洲综合一区二区| 天天色色婷婷| AA丁香综合激情| 国产精品久久久爽爽爽麻豆色哟哟| 天天操天天插| 日本天堂免费99| 这里只精品| 五月婷婷六月色| www.五月.com| 久久综合中文| 色婷婷五月天激情在线观看| 五月婷婷六月丁香激情| 九九色图| 1级欧美日韩| 亭亭玉立国色天香| 超碰不卡在线| 五月天婷婷激情六月久久 | 亚洲色A| 九月丁香婷婷| 99亚洲精美视频在线观看| 久久最新色| www.狠狠干com| 99re热视频这里只精品| 成人在线视频网| 97操操| 久久婷婷综合色丁香| 激情综合色婷婷啪啪六月天| 天天射美女| 丁香五月六月婷婷殴美综合| 26UUU欧美激情一区二区| 综合色播| 久热黄色| 色播播五月天| 婷婷激情四射五月天| 区欧美日韩成人| 99色色网| 日韩成人精品一区久久久久| 久久aaa| 色综合色色| 色婷婷yy久| 天天做天天爱天天爽在| 五月丁香六月成人| 99热精品在线| 五月天婷婷综合网| 影音 五月 婷婷 久久| 99操免费视频| 五月香婷婷| 亚洲九区| 97操碰在线97| 九九热99在线视频| 色色免费网站| 日本美女97在线视频| av在线免费网站 | 开心五月天激情网| 99在线小视频| 欧美激情 日韩无码 婷婷 五月天| Va另类视频| 九九久久99| 97久人人| wwwss在线观看| 99久在线精品| 九九热这里只有精品6| Www.sesese丁香| 色婷婷狠狠久久综合五月| 五月婷婷综合在线| 玖玖@三月天天丁香婷婷| A片一曲| AA丁香综合激情| 五月停停色| 91婷婷丁香| 99re最新地址视频| 婷婷中文无码| 久久与婷婷| 天天干天天色综合| 99热在线这里只有精品| 日本天天色| 日韩色色色99| 丁香六月婷婷操逼网| 超碰国产在线| 色网五月婷婷| 日本狠狠干| 91久久久久久久久久| 婷婷综合网站| www.五月天色色.com| 丁香五月婷婷网| 99ri国产| 99久操视频| 色播五月综合网| 开心丁五月| 久久久久久9热不雅视频| 人人天堂操| 色五月综合97| 久久免费精彩视频| 伊人激情影院| 久久色五月| 国产97在线日韩亚洲女人被黑人巨大| 久久久五月五丁香| 天天插夜夜爽| 色综合久久8| 99人人干| 激情婷婷啪啪| 五月丁香婷婷五月色| 狠狠干,狠狠操| AV性爱在线| 婷婷欧美色| 色在线免费观看| 二色av| 深爱激情网五月天| 开心婷婷五月天综合| 99自拍视频| 婷婷的色色五月天| 天天擼久久擼在线| 天天舔天天插天天爱| 婷婷六月色| 久久机热/这里只有精品| 亚州激情九月| 色五天综合| 偷拍91九色| 五月丁香黄色| 激情婷婷亚洲五月| 天天综合久久| 婷婷五月综合中文字幕| 99re在线视频| 99无吗| 久久这里只有精品无码| 9 9 9色色| 99热久久这里只有精品| 久久久99精品| 无码网| 99操碰| 另类视屏| wwwav大香蕉| 丁香五月婷婷五月| 99自拍视频在线观看| 九九这里只这里只有精品| 99久操视频| AA片在线观看视频在线播放| 久色婷婷200| 五月丁香六月婷综合成人综合| 欧美色色日韩| 无码一级片| 亚洲天堂制| 人人肏逼视频在线一区二区| 中文在线成人| 99在线热视频| 超碰com| 九九在线视频| www.色婷婷。com| 免费日韩99| 9九热视频| 密黄站| 婷婷五月激情欧美| 色婷婷AⅤ| 亚洲精品网址| 久操干| 婷婷五月中文字幕| 日韩在线观看亚洲| 五月婷丁香久久综合| 色婷婷电影网| 精品夜夜澡人妻无码AV| 久色网址| 五月丁香五月综合欧美| 婷婷五月天堂| 97在线刺激| 亚洲精品99| 深爱激情五月网| 激情综合五月丁香| 99视频| 偷拍九九热| 丁香花五月天婷婷成人社区| 日本天堂免费99| www.henhenl| 婷婷成人视频| 五月婷婷综合在线亚洲视频| 九九色大香蕉| 天天干夜晚夜操| 日韩超碰在线| 亚洲中文字幕av| 婷婷六月色开| 五月天综合在线| 亚洲色色色| 久9热在线免费观看| 香蕉AV777XXX色综合一区| 丁香五月婷婷影院| 亚洲色无码A片一区二区麻豆| 国产成人99久久亚洲综合精品| 婷婷久久色| 日日操夜夜爽| 99热国产免费| 婷婷亚洲综合| 五月丁香色综合| 免费无码毛片一区二区A片| 99r这里| 91碰| 欧美天堂婷婷日韩| 中文激情网| 久久机热思思热| 97人凄人人操人人爽| 开心激情网五月| 丁香五月激情婷婷婷婷在线观看| 天天色综合网吨吧| 亚洲成人av在线| 人妻熟人中文字幕一区二区 | 好大好粗嗯啊-一级黄色大片免费观看-成人AV| 九七色色六月丁香| 丁香五月色色婷| 久久婷综| 婷婷欧美激情综合| 久热免费| 亚洲精品国产A久久久久久| 色吧五月| 光棍影院日韩精品| 丁香八月综合激情| 99久在线观看| 99热在线网站| 日本特黄aaaaa| 丁香五月激情在线| 九九色精品| AV网在线观看| 婷婷99| 99亚州综合精品成人网| 日本丁香五月| 激情丁香五月婷婷| 色五月婷婷久久| 九色1区视频在线| 婷婷五月激情热播| 五月天婷婷综合免费| 99九九玖玖| 天天综合网~91| 思思热思在线精品视频| 婷婷五月天成人影片| www.热99热| 久久久97| AV在线中文| 亚洲va综合va国产va中文| 天天日天天草| 亚洲精品九九| 婷婷五月天亚洲图片| 婷婷六月天激情| 一本久久婷婷| 校园激情 亚洲| 99热亚洲| WWW色五月天| wwwss在线观看| 婷香狠狠爱五月| 久久精品亚洲一级牲爱综合| AA丁香综合激情| 婷婷狠狠香蕉综合| 99r这里只有精品在线观看| 欧美天堂久久| 婷婷六月视频| 狠色色狠网| 九九爱精品网站| 思思99热这里只有精品| av人人操| 99青青草99| 六月丁香婷婷色69| 成人五月丁香花| 深爱五月天天| 婷婷五月色播天| 久久这里只有精品16| 六月丁香婷婷综合狠狠爱夜夜爱| 国产又爽又猛又粗的视频A片| 9999热在线观看| 日本五月婷婷| 九月综合| 婷婷九九| 久久九九综合| 五月丁香久久综合| 亚洲日韩国产黑丝黑丝AVAV一区二区三区 | 婷婷天天色| 色综合久| 五月天婷婷影院| 丁香五月老师| 97色五月丁香婷婷| 五月天婷婷乱论小说| 日韩中文字幕| 丁香五月天啪啪激情综合网| 丁香五月天之婷婷影院| 婷婷丁香激情综合色情| 啪到高潮激情丁香五月| 成人婷99最新| 综合激情伊人影视在线| 99久久玖玖| 九九成人精品免费视频| 色丁香影院| 丁香五月天激情四射网| 色五月婷婷色五月婷婷色五月婷婷| 欧洲色区| 深爱激情网婷婷| 日韩AV免费| 五月天综合激情网| 99热精品少| 欧美情色一区| 殴美综合激情五月天免费视频| 教师性爱毛片| 丁香五月婷婷大香蕉| 激情色情五月天| 天天肏在线观看| 99人这里只有精品| 天堂伊人干| 丁香六月婷婷久久综合| 丁香激情五月少妇| 26uuu最新地址| 久久婷婷一级片| 久婷久婷| 全部老头和老太XXXXX| 大香蕉啪啪啪| 色玖玖| 99看片| 亚洲国产色婷婷| 蜜臀综合久草| 丁香六月婷婷综合在线| 五月丁香另类网| 国产成人网址| 99热免| 亚洲人成网亚洲欧洲无码久久| 中文无码婷婷| 女力报到正好爱上你| 国产乱轮一区二区三区| av中文网站| 九九人妻福利| 性爱人人网| 久久久久er热| 噜噜视频| 99re思思热这里| 黄色成人网站在线播放| 五月婷在线| 五月婷婷六月少妇激情| 五月丁了香蕉综合| 国精产品一区一区三区免费视频| 激情五月婷婷色综合| 高清无码视频网址| 丁香六月欧美| 玖玖资源站国产| 热久69| 激情综合网激情五月俺也去| 亚洲免费看片| 激情五月婷婷视频| 99久久久久| 五月婷中文字幕| 99精品视频免费| 九九久久五月天综合伊人| 色色五月天 亚洲| 九九热最新| 97天堂| 色呦呦美女| 九热视频这里只有精品| 内射丰满人妻| 99re66热这里只有精品| 精品亚洲国产成AV人片传媒| 99热这里全是精品| WWW.开心五月天.COM| 婷婷丁香综合| 95精品区一区二| 91久久久久久| 五月丁香五月婷婷| 国产免费一区二区在线A片视频| 99丁香五月婷| 综合网色| 伊人狠狠色婷婷综合丁香一区| 97精品在线| 丁香五月中文字幕久色| 人伦30P| 99热碰碰| 日本操片| 91久久久久久久91| 婷婷久久伊人| 国产肏屄大片| 色婷成人狠干| 人妻久热| 91丨九色丨高潮丰满日本| 四川BBB搡BBB搡多人乱亂| 天天爽天天操| 91久久电影| 五月婷婷成人| 大香蕉婷婷丁香视频在线| 九九操综合网| 日韩久久这里只有精品| 人人操人人添人人摸97| 99热这里只有精品1| 五月六月丁香激情| 久久这里有精品在线观看| 91啪啪视频| 五月婷婷新网站| 婷婷 久综合| 久色| 一本大道熟女人妻中文字幕在线| www.狠狠操| 久久综合影院| 色综合99| 五月婷婷丁香日韩在线| 欧美性爱五月天| 99热国产| 五月天操逼激情| 九九热99久久99| 99久在线精品99re5热视频| 韩国中文字幕91| 国产精品a无线| 在线播放 精品| 五月激情综合性爱| 高清不卡一区| 九九九九毛片| 另类综合激情| 婷婷五月天激情丁香| 五月丁香婷婷在线| 欧美美女国产日韩一区二区久| 五月婷婷人人人操| 97超级操操| 色婷婷丁香| 国产综合激情五月久久| 婷婷五月大| 五月丁香啪啪啪啪| 色婷婷亚洲在线| 五月婷婷丁香五月 | 激情婷婷丁香五月天| 99久久偷拍视频| 丁香五月婷中字在线| 五月婷婷中文| 婷婷五月色激情欧美激情| 色欲香综合网| 久久亚洲天堂| 婷婷五月花| 免费在线a| 婷婷五月天成人五月天| 久久伊人大香蕉| RenRenSe在线视频网站| 天天爽曰日爽| 97超碰在线免费观看| 五月激情婷婷图片基地| 超碰9| 99热这里只有精品热| 六月丁香五月激情婷婷| 亚洲最大五月天成人网| 五月丁香婷婷激情澎湃四射 | 亚洲中文乱字字幕线在永久| 丁香五月天无码| 久久草中文日韩欧美| 九九热在线99| 最近中文字幕大全免费版在线| 激情综合五月| 夜夜爱影院| 中文字幕人妻熟女在线| 99免费在线视频| 天天爽天天爽| 97资源欧美日韩大香蕉超碰一区| 99riAV国产精品视频| 在线成人网站| 婷婷五月天高清无码| 99人妻碰碰碰久久久久视| 婷婷五月电影| 色情综合网| 亚洲综合色婷婷| 丁香五月婷综合网| 欧美S码亚洲码精品M码| 丁香色婷婷色手机免费在线| 青青草99re| 欧美成人网婷婷综合在线| 5月婷婷综合| 久久婷婷久久| 免费操超碰| 婷婷另类开心| 人妻AV在线| 丁香五月天激情四射网| 久久综合婷婷| 亚洲综合另类| 97久久超视频| 九九色热视频| 亚洲乱码日产精品BD| 丁香婷婷婷婷十二月在线观看视频| 任你擦免费视频| 亚洲激情免费视频观看| 五月天丁香| 色色综合五月| 狠狠色婷婷六月激情网| 婷婷五月色播| 国产色色色色色| 激情五月亚洲| 天天日天天肏天天奸| AVV黄| 五月情丁香色| 人妻少妇色综合| 九九99在线免费在线观看视频| 激情五月天网页| 少妇伦子伦精品无吗| 五月丁香五月丁香五月丁香五月丁香91| 思思热久久久久思思热| .操區COm| 激情小说在线视频| 久er免费视频| 欧美25p| 色很很96| 五月丁香 啪啪| 激情综合在线观看| 天天肏在线观看| 亚洲成Av人片乱码色第1集| 熟女激情网| 亚洲综合视频网| 99视频啪啪| 深爱激情综合网| 婷婷色六月| 丁香婷婷91在线观看视频| 婷婷丁香五月亚洲| 色五月婷色彩免播放器| 亚洲十月婷婷综合| 无码人妻精品一区二区蜜桃色欲| 五月天婷婷色情| 色久影院| 91日韩在线| 欧洲色| 色宗合久久五月婷婷| 直接看的AV| 九九99九九99九九99视频网| 婷婷五月精品在线| 97日本操| 久久丁香五月天| 婷婷99中文字幕| 综合网色| 久久婷婷一级片| 视频在线免费观看欧洲乱码| 国产色视频网站2| 狠狠操狠狠插| 五月天丁香网| 欧美性色A片免费免费观看的| 婷婷丁香五月天综合AV| 丁香六月激情| 综合五月天亚洲婷婷| 六月丁香啪啪| 色亚洲婷婷| 色综合香蕉视频| 中文激情网| 五月天色婷婷av| 99ri国产精品| 超碰av在线| 99久久成人| 婷婷丁香五月在线观看91| 激情宗合网激情五月天| 熟女少妇内射日韩亚洲| 婷婷六月丁香在线| 深夜婷婷 丁香| 亚洲免费av在线| 99这里只有免费的精品| 丁香五月色| 成人欧美Va| 另类激情码| 国产做A爰片毛片A片美国| 九九热九九热精品| 久久国产高清| 粉嫩AV久久一区二区三区| 青草网在线观看| 狠狠色噜噜狠狠狠狠狠色综合久久| 天天综合永久| 在线观看996精品| 国产精品涩涩涩视频网站| 激情网狠狠干| 久久五月婷婷丁香| 大地资源色婷婷视频在线| 国产美女最新VA在线免费观看| 久久一级AV| 婷婷激情性爱| 六月丁香激情综合| 99re久久| 日韩啪图| 裸体做A爰片毛片A片免费| 天天添天天摸天天天天做| 久草x色在线观看99| 色婷婷五月视频| 开心四月婷婷在线色播播| 色九九综合色| 激情五月天色色| 五月天亚洲色| 色婷婷五月天激情| 五月丁香婷婷欧美色图视频五月丁香777电影| 欧美天堂久久| 国产精品成人av在线观看春天| 日韩精品无码AV| CHINESE熟女老女人HD视频| 婷婷丁香五月天亚洲| 狠狠CAO日日穞夜夜穞AV| 色婷婷五月天不卡| av在线播放网址| 久久九九囯产| 日本va欧美va国产激情| 天堂婷婷五月色| 久久久香| 91好好热日本在线| 超碰九热| 丁香五月婷婷在线| 五月婷婷|欧美| 热99AV网站| 天天天天做夜夜夜夜做| 一区二区三区XXXXXX| 亚洲综合色色色| 99re在线视频| 99热在线只有精品| 婷婷丁香五月天中文字幕| 99热青青草| 婷婷五月六月丁香| 十二区无码| 五月综合激情久久| 欧美成人AAA片一区国产精品| 婷婷爱五月天人人爱| 中文av网| www五月天激情com| 日本操逼九九九九58日本操逼| 婷婷伊人久久综合| 98永久精品| 丝雨一区二区| 日韩限制级大尺度黑料泄密大尺度视频一区二区在线观看 | 婷婷丁香激情综合色情| 五月丁香婷婷综合| 日本久久天堂| 99无码视频| 亚洲婷婷五月天| 夜夜躁婷婷AV| 天堂色婷婷| 超碰日日操| 亚洲在线资源| 91热久久| 五月花免费视频| 农村熟妇高潮精品A片| 人人操人人爰人人一天天碰夜夜拍夜夜爽-中国A级毛片天天看天天谢… | 色综合婷婷| 我去色色网五雨天| 开心激情网五月天| 99在线精品免费视频| 秋霞网在线观看理论91| 九九热re99re6在线精品| 婷婷中合| 182无码| www狠狠爱com| 五月婷婷六月丁香首页| 青草视频在线播放| 91肏肏肏| 色色综合五月| 欧美啪啪9| 大香蕉懂9| 五月丁香六月激情综合| 久热爱大香蕉在线蜜臀悦色 | 熟女人妻视频| 99热精品在线观看| 丁香六月婷| 亚洲久久天堂| 一区操| 91色在线 | 日韩| 五月天啪啪视频| 秋霞三级影视资源| 亚州精品久久久久AV无码| 九月激情网| 四月婷婷五月色综合| 97色97干| 婷婷欧美色| 婷婷丁香人妻久久在线观看| 亚洲丁香婷婷五月天综合色| Av九九| 亚洲六月婷| 这里只有精品视频在线| 色噜噜在线| 激情婷婷五月天日本系列| 四虎婷婷五月天| www夜夜操| 久久激情五月| 大香蕉综合视频在线| 久久AV无码精品人妻系列试探| 国产真人做爰视频免费| 99视频在线| 婷婷丁香五月天色色| 婷婷色播婷婷| 性爱视频99| 丁香五月婷婷综合啪啪| 男人操女人高潮91视频| 亚洲乱码日产精品BD| 99欧美| 婷婷五月天毛片| 久久婷婷资源| 亚州激情在线视频| 六月婷婷五月天| 婷婷五月花| 伊人丁香在线| 六月婷婷激情图片| 天天操天天爱天天玩| 秋霞电影一级黄| 色婷婷久综合久久一本国产AV| 噜噜色噜噜网| 六月婷婷激情| 91国产精品视频播放| 日本99视频精品免费播放| 中文字幕,综合,91| 啪啪啪五月天| 婷婷无码视频| 久久44| 五月婷婷开心深| 婷婷色五天| 婷婷在线网| 亚洲激情综合| 婷婷丁香人妻天天爽| 久久九精品| 九九操屄| 丁香五月花影院| 99高级会所久久| 九月丁香亭亭| 操逼综合网| 婷婷六月激情丁香| 丁香五月婷婷啪啪啪| 99久久婷婷国产综合| 最近中文字幕2019视频1| 九九久久色| 激情五月综合色婷婷| 五月婷天天搞视频| 久九男女天堂| 这里只有精彩视频| 色婷婷五月天| AA片在线观看视频在线播放| 日本三级片片| 激情深爱婷婷网| 五月大香蕉| 九九热大香蕉| 天天影院色| 亚洲亚洲人成综合网络| 日韩成人免费电影| 五月婷婷久久综合| 91九色中文字幕女在线观看| 97人人射| 五月丁香手机在线| 91Chinese在线| 在线网黄| 夜夜大香蕉婷婷丁香| 五月丁香影院| 激情另类综合| 亚洲色视频| 99久热精品在线| 夜夜爽天天干| 久久国产AV| 五月丁香婷婷基地| 激情综合99|