免费国产精品自在自线-91精品国产色综合久久久浪潮-99热久久免费频精品-国产精品国模在线观看-久久亚洲国产精品成人?V秋霞-久久国产一级A片免费播放-亚洲国产欧洲综合97久久-久久国产白嫩美女呻吟高潮

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
返回資訊列表
五月婷婷色男女| 婷婷色激情五月天| 99热免费| 欧美综合五月丁香五月天| 丁香婷停五月激情综合深爱| 久久中文网| 婷婷激情九月| 97综合在线| 丁香婷婷精品视频| 五月婷婷色欲| 色99网| 五月婷婷香蕉视频| 丁香六月婷婷| 激情综合网五月在线播放| 五夜婷婷| 插插插色综合网| 亚洲乱码日产精品BD| 成人婷婷五月天| 欧美性色A片免费免费观看的| 99热国产这里只有| 色九九九综合| av九九| 这里有精品99| 狠狠婷婷色综合| 狠狠草综合网| 在线观看亚洲视频影院| 爱射综合| 五月天涩涩| 大香蕉啪啪啪啪啪啪| 国产精品色| 婷婷中文无码| 91男同视频| 五月丁香黄色| 丁香婷婷五月激情| 日本一级淫| 成人视频婷婷| 激情五月天色色| 99操逼| 色综合五月婷婷狠狠干| AV在线收看| 中文字幕人妻在线| 欧美色色色| 成人精品网站在线观看| 亚洲无码色色| 深爱激情网综合| 在线观看av网站| 色综合激情| 密乳视频| 五月丁香婷婷色色| 日噜噜色| 色婷婷影院| 狠狠综合| A1片久久久| 丁香五月亚洲AV| 日本WwW色偷偷丁香花久久久京东热| 99色免费观看全部| 九九爱这里只有精品| 影音先锋自拍网| 五月婷婷色五月| 激情深爱五月婷婷| 日韩无码性爱| 成熟妇人A片免费看网站| 天堂草在线观看| 久久香蕉福利| 超碰99成人在线| 五月婷婷AV| 婷婷色五月天综合网| 1024成人在线观看| 激情98色婷婷五| 99福利导航| 99热99热在线观看| 人人澡玖玖一| 五月丁香六月婷婷综合| 免费看成人AA片无码视频吃奶| 噜噜五月天综合| 婷婷导航| 日本人人草草| 538在线精品| 天天爽在线视频| 99热老网站| 日韩一级网站| 日逼影音先锋男人AV资源站| 五月天婷婷无码| 色五月丁香六月欧美综合| 深夜男女福利刺激影院一区完整| 狠狠色九月| 丁香五月性| 婷婷五月天综合网| 综合五月草| 9999热在线观看| 激情五月婷| 婷婷五月影院| 婷婷五月天视频亚洲| 亚洲俩性性爱图片久久第六页| 日韩在线成人电影| AV天堂婷婷五月天| 色噜噜婷婷| 久久视9精| 开心五月网 | 日韩爱操视频| 五月色丁香激情| 激情五月丁香五月| 色综合丁香| 不卡在线视频| 99年操人人爽| 国产精品天天狠天天看| 99re热视频这里只精品| 91五月天| 久久久18| 久久ww| 日本五月天激情| 襙逼网| 俺也去在线久久精品23欧美综合视频网站,丰满人妻一区二区三区在线视频53,丰满 | 婷婷久久久| 丁香九月综合| 婷婷五月天电影网| 色99网| 丁香五月天五码婷婷| 熟女乱论网| 日本欧美在线| 91Chinese在线| 五月狠狠| 99啪| 色综合爽| 黃色三级三级三级三级 qixing300.shrkbk.com www.jinbozs.com tianmiaosw.com | 婷婷五月丁香欧洲| 激情六月天婷婷| 色色色色色色网| 成人性爱无码| 婷婷五月天成人| 五月天婷婷激情在线色图| 五月丁香色婷婷综合| 伊人综合网4| 亚洲九九免费| 久久五月激情网| 五月激情婷婷图片基地| 久久婷婷五月综合97色一本| 97色热| 五月婷天堂视频| 色婷婷小视频| 成人毛片在线免费观看| 五月天丁香网站| 精品人妻在线| 久久久精品视频79| 五月丁香激情婷婷综合字幕| 一本久久亚洲五月婷婷| 六月丁香婷婷在线波多 | 91九色丨国产丨爆乳| 日本高清久| 国产婷婷综合| 日本精品在线噜噜噜| 九九热这里只有精品5| 日本一级一级一级一级| 夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂亚洲亚洲亚洲亚洲亚洲亚洲亚洲亚洲色 | 99九九免费精品| 丁香五月婷婷亚洲激情四射| 99久久久免费| 久久五月天黄色五月天色网址| 五月天激情国产综合AV| 天天综合网亚洲网站| 丁香六月在线| 日韩一级片| 91综合色| 久久婷婷内射| 五月天激情小说| 欧美日韩中文国产一区发布| 久久性爱视频| 4399精品一区二区| 亚洲网视屏| 五月天六月丁香| 久热中文字幕在线线观看 | 国模狼狼| 日本精品99网站| 99在线er热| 久热这里只有精品在线观看| 久久这里只| 深爱五月天| 色婷婷av在线观看| 蜜臀AV在线观看| 香蕉99网| 久久五月综合| 啪啪六月婷婷| AV性爱在线| 五月天婷婷色色| 丁香婷婷五月香蕉91| 91窝窝| 久9热| 色五月婷婷777| 丁香婷婷婷| 葵花AV在线| 狼人婷婷久久| 亚洲精品五月| 久草婷婷| www.99操.com| 成人片久久网站| 亚洲人成人五月天| 五月婷婷丁香| 色情五月天。| 五月丁香激情深爱婷婷| 操一区| 婷婷狠狠综合网入口| 日本WWW九九九| 六月亚洲| 九九这里只有精品| 婷婷五月色天| 人人摸人人干| 五月天婷婷久久日| 猫咪伊人久久| 色五月在线综合| 日本色频| 九九热精品视频在线观看| 99久视频| 9福利性视频欧美| 五月综合视频在线| 影音先锋777xfplay色资源网站| 9999久久久久| 色97啪啪| 亚洲婷婷激情888精品久| 91视频精品99| 久草 tingting| 五月天色导航婷婷资源婷婷| 婷婷丁香成人| AA片在线观看视频在线播放| 激情AV中文| 日韩草草草草草草草草草草草草| Caoub青青超碰| 久久婷婷在线| 综合99在线| 婷婷五月丁香成人| 成人精品免费在线观看| 日本婷婷网| 六月丁香婷婷色狠狠久久| 天啪色| 天天色图| 热这里只有精| 人妻久久久久久久久妻久久久久久久久| 亚洲色色色色| 人与禽A片啪啪| 欧美婷婷丁香五月| 五月丁香婷婷三级| 大战熟女丰满人妻AV| 亚洲综合在线播放| 久久99大全| 久久天堂女人| 久久aaa| 91热在线| 综合网色综合| 深爱激清网| 久久AAAA片一区二区| 婷婷五月天AV在线| 色婷婷在线视频| 七七色综合| 五月天色婷伊人| 国产成人网| h亚洲| 综合久久五月天| 国产成人精品一区二三区熟女在线 | 日木狠狠干| 日本五月婷婷| 影音先锋男人站,影音先锋男人色资源网,影音先锋AV最新资源站,影音先锋AV资源 | 色五婷婷| 九热av| 九九亚洲小视频| WWW.五月天9999| 九色啦蜜臀| 91精品激情9| 五月婷婷播| 久久99网| 亚洲亚洲激情| 丁香五月五月婷婷欧美大香蕉| 97碰在线| 激情五月天网| 性婷婷| 婷婷中文字幕| 天天干夜夜操A片| 天天色视频| 欧美熟女99| 4399在线日本A片| 激情六月天婷婷| 六月婷婷视频| 亚洲色图五月丁香| 激情五月色在线播放| 爱狠射| 热热久久99| 五月天丁香花婷婷| 欧美影院| 综合激情五月丁香| 婷婷社区五月天| 在线观看熟女少妇| 欧美色图片88| 色婷婷五月天激情在线观看| 丁香五月最新地址| 26uuu精品一区二区| 激情五月深爱五月观看| 老司机日日夜夜青草| 五月婷色激情五月| 涩涩涩婷婷| 操逼巨乳91| 蜜桃婷婷狠狠久久综合| 激情久久久久久久久| 婷婷丁香五月综合免费视频百花| 丁香六月激情| 色五月综合| 激情五月天色| 中文成人在线| 丁香久久| 91超级碰碰| 丁香六月天| 99视频在线观看视频| 五月婷婷综合色啪首页| 丁香 久久| 操碰99| 欧洲色色| 深爱激清网| 2017狠狠干| 婷婷激情九月| 婷婷视频网| 五月丁香六月花| 97日本在线| 色色色色五月| 久久这里只有精品22| 91在线操| 99ER热精品视频| 99国产这里只有精品| 色色狼人综合| 色欲色欲久久宗合网| 免费亚洲婷婷| 丁香六月婷婷激情综合| www.99精品日操伊人乱碰在线| 五月婷婷丁香五月| 婷婷导航| 91碰人人| 丁香激情网| 啄木鸟丝袜美女福利视频| 日韩欧美成人片| 五月婷婷与六月丁香图片激情| 久久色情| 欧美激情-区二区三区| 一起草Av| 丁香六月无码| 色八月婷婷| 伊人激情AV一区二区三区| 精品国产va久| 久久色9| 国产乱人偷精品人妻A片| 99热这里有精品| 婷婷丁香射射| 久久久婷婷五月亚洲97号色| 色婷青青| 五月丁香啪| 伊人色综合影院视频| 内射干少妇亚洲69XXX| 婷婷五月六| 五月丁香色情| 国产1区2区| 搡BBBB搡BBB搡18| 五月色综合| 内射激情在线| www.99色| 婷婷五月天国产性感美女演员久久久久| 色婷婷导航| 成人丁香婷婷| 五月涩涩网| 丁香五月天啪啪| 激情五月天福利| 丁香婷婷综合激情五月色| 99色| 婷婷五月天激情偷拍| 91性高潮久久久久久久久| Www.狠狠| www色中色综合| 九九re精品视频在线观看 | 精品无码人妻一区| 99操99| 久久久久久9热不雅视频| 丁香五月成人| 狠狠插狠狠插| 亚洲美女高潮久久久久久69| 婷婷丁香五月综合| 久久aaaa片一区二区| 成久综合视频| 五月天色色网站| 成人在线日韩欧美| 天天爽曰日爽| 人人操碰| 97日本操| 久久全意婷婷| 精品成人在线| 中文字幕在线免费看线人| 精品久久99码| 大香蕉五月天婷婷| 第二色AⅤ| 亚洲欧洲另类| 国产欧美日韩性爱| 成人午夜无码视频| 狠狠久久婷五月| 婷婷五月丁香色播| 丁香五月天婷婷91| 噜噜狠狠色综合久| 女人天堂久久| 欧美在线看| 无码少妇高潮喷水A片免费| 在线视频另类| 五月婷婷av| 99精品热| 婷婷久久五月天丁香| 久久丁香五月| 91久久电影| 久久婷婷五月综合| 91狠狠色色丁香婷婷综合久久| 热99热9| 五月综合影院| 久久免费婷婷视频| 色99在线观看| 久久艹99| 午夜婷婷久久 | 棕合影院色色| 婷婷丁香五月天影院 | 九九久久污| av网站不卡在线| 97色婷婷| 国产午夜精品一区二区三区四区| 五月婷视频| 五月婷婷啪啪| 丰满少妇乱A片无码| 成人综合网站| 爽tv | 五月婷婷综合激情小说| 婷婷婷五月香蕉| 久久久免费图片视频| 五月丁香婷婷钟和色图| 丁香五月婷婷亚洲天堂| 五月天丁香综合在线| av超碰在线| 激情婷婷综合网| 吊色AV男人的天堂| 色狠狠狠干| 激情播丁香| 深爱激情久久| 婷婷五月天影视首页| 婷婷丁香宗合888| 久久精品99| 久久久久久久人妻| www.seqingwuyuetian| 五月九九综合| 99riAv1国产在线观看| 91啪啪视频| WWW色综合| 久久精品永久免费| 深爱激情五月婷婷| 99热这里全都是精品| 国产成人av在线播放| 久久人妻视频| 少妇水多A片太爽了| 性欧美大战久久久久久久83| 五月丁香激情婷婷| 五月天综合久久| 亚洲精品在线视频| www婷婷| 中文字幕欧美日韩VA免费视频| 教师性爱毛片| 色综合99无码| 五月婷婷深深爱| 精品五月丁香| 婷婷天天婷婷天天澡| 超碰人人射| 婷婷五月花| 色五月婷婷丁香凹凸| 99热综合色图| 亚洲第精品| 五月天六月婷婷电影| 日韩另类在线观看| 成人片黄网站色大片免费毛片| 大香蕉娱乐| 狠狠五月激情在线| 五区毛片七区毛片| 五月色综合| 久久婷婷五月综合色欧美| 五月天婷婷丁香花| 情情五月天色| 婷婷久久五月丁香| 影音先锋一区二区资源站| 亚洲免费在线观看岛国| 九九热只有这里是精品| 播五月开心婷婷欧美综合| 这里只有精品视频在线| 久久五月婷综合网| 免费AV黄在线播放| 九月av| 尤物一区二区| 全亚洲最大的婷婷五月天网站COM| 久99视频在线观看| 中文字幕乱轮| 成年人丁香五月| 免费播放AV| 99视频在线播放大全| 亚洲激情在线| 成功精品影院| 超碰免费人人肏| 激情九月综合| 九九十99视频| 五月天停停基地| 99热久| 亚洲成人av在线观看| 操操操av| 超碰在线观看99| 成人国产欧美大片一区| 色性综合| www夜夜| 91在线就要啪| 丁香五月综合激情久久潮喷| 色呦呦美女| 丁香六月天婷婷色| 天天天天天色| 人妻精品一区二区三区| 色在线99| 久久婷婷六月综合综合色| 国产欧美日韩综合精品一区二区| 97久久超碰| 99色 色| 另类少妇人与禽zOZZ0性伦| 日韩人妻在线观看| 一本色道久久综合狠狠躁小说| 亚洲天堂色色| 97干在线免费| 五月天伊人手机在线播放AV| 九九无码| 久久只有精| 九九热视频99| 91精品综合久久婷婷九色| www,婷婷| 国产99久9在线+|+传媒| 综合五月激情| 亚洲AV影片在线观看| 亚洲精品乱码久久久久99| www.色99| 91色五月| 激情丁香社区| 久久婷.com| 亚洲va在线∨a天堂va欧美va| 97人碰人操| 激情纯色婷婷五月天在线不卡视频| 99热首页| 天堂婷婷五月在线| 九九热在线精品视频| 99热丁香五月| www.婷婷五月| 97色婷| 丁香八月综合激情| 深爱1激情网| 久久婷婷免费| 亚艹艹| 极品嫩草| 99综合| 五月婷婷黄| 六月天婷婷| 亚洲区在线| 五月婷婷乱| 人妻久久久久久| 国产Va视频| 亚洲精品一区中文字幕乱码| 性爱先锋AV| 色色色热| 丁香五月天五码婷婷| 欧美亚洲色色色色| 婷婷丁香人妻天天| 久久最新色| 8区视频在线| 超碰啪啪网| 夜夜操天天爽| 亚洲人人操| 五月停停999| 人人摸人人操人人爽| XX色综合| 襙逼网| 天海翼中文字幕高| 婷婷五月天激情免费在线观看| 海外网站专业操老外| 天堂久久婷婷| 天天日天天插天天操| 久久国产一区二区三区| 九九精品在线观看视频6| 色色综合院| 生活片五区| 色五月婷婷狠狠撸| 色婷婷丁香五月| 久久99热只有精品| 噼里啪啦在线观看免费完整版视频| 激情小说五月天中文字幕| 婷婷五月天 丁香五月天 裸体| 五月天综合激情网| 在线成人视频免费| 色色99| xfplayav在线| 婷婷六月激情综合| 激情综合99| 激情网五夜婷婷| 色5月婷婷| 色在线五月天免费| 高清a片基地| 91九色精品| 久热人妻| 伊人网色婷婷五月天| 大香蕉五月天婷婷丁香91| 人妻啪啪啪| 五月天色导航| 激情亚洲婷婷| 国产成人精品一区二区三区视频| 五月丁香六月玩女人| 啪啪婷婷五月天激情| 超碰操网| 激情综合亚洲色婷婷五月| 日韩精品无码AV| 人人干av| 婷婷情色激情| 婷婷五月中文在线| 丁香五月 激情文学| 色婷婷网| 开心深爱五月天| AA片在线观看视频在线播放| 99爱视频| 婷婷五月天亚洲激情戏精品| 婷婷五月色综合| 免费无码毛片一区二区A片| 99成人| 色婷婷色久综| 日韩人妻无码精品| 99爱操| 五月色婷婷综合| 色色99| 亚洲亚洲人成综合网络| 亚州色婷婷| 丁香九月婷婷色| 九九香蕉网| 亚洲中文字幕在线观看| 人妻激情综合| 激情丁香五月激情婷婷| 91精品在线看| 可以免费观看的AV| 五月婷婷九| 色五月色图| www久久久久久久久久久久久久久久久| 情色五月天网站| 99re久热只有精品6在线直播| 久久久婷婷五月亚洲97号色| 影音先锋91网站在线观看| 久久婷综合| 丁香六月情| 免费久久这里只有精品99| 色碰碰视频| www.激情五月天.con| 日韩丰满少妇无码内射| 色色色综合网| 99综合自拍| 久久久久亚洲AV成人无码电影| www.99色在线| 色婷婷激情视频| 日韩色色网| 亚洲色夜| 九九热在线视频观看免费10| 国产97在线日韩亚洲女人被黑人巨大| 操91| 少妇高潮一区二区三区99欧美| 亚洲综合网激情小说| 婷婷99狠狠躁天天| 人人操女人| 综合久久首页| 成人性生活免费观看。| www.婷婷| 色色亚洲| 中文字幕在线资源| 狠狠狠狠狠狠色| 另类小说色婷婷| 26UUU欧美激情一区二区| 五月天综合激情网| 99玖玖在线视频| 碰碰碰91| 九月婷婷在线观看| 伊人高清无码| 国产婷伊人| 99精品国产乱码久久久人妻| 色色热| 激情五月综合| 国产99久久久国产精品免费看| 丁香五月伊人| 99热在线观看免费精品| 色五月天成人| 深爱五月婷| www.丁香五月| 天天橾日日橾夜夜橾17| 国产精品久久久60086| 九九久久99| 午夜色色色极品视频| 国产免费一区二区三州老师F1F1……| 日韩AV中文字幕在线| 婷婷丁香五月在线观看91| 农村熟妇高潮精品A片| 亚洲av综合网| 五月婷婷啪啪啪| 日本啪啪天堂| 九九在线精品| 婷婷色播婷婷| 免费精品99| 婷婷射图| 99亚洲视频| 中文字幕在线免费观看视频| 婷婷六月激情| 日本久久婷| 26uuu精品国产| 人人人操| 丁香六月婷婷综合| 天天干一干| 国产亚洲成AV人片在线观黄桃| 欧美成人一区二区三区在线视频| 九九精品大香蕉| 91主播在线| 大香蕉操操| 婷婷五月天性爱视频| 人人肏逼视频在线一区二区| 免费五月婷婷网| 99精品免费| 女同激情久久av久久| 玖玖热视频| 成人午夜天| 国产欧美大香蕉一区| 91精品综合久久久久久五月天| 99精品高潮| 色婷婷狠狠18禁| 婷婷久久综合| 五月丁香亚洲综合网| 99热精品在线免费观看| 色丁香婷婷| 久久久WWW| 大香蕉啪啪啪| 日本啪啪视频HD| 亚洲中文AV| 91青娱乐青青草| 五月丁香六月婷婷啪啪综合 | 狠狠干在线| 久色88| 色五月婷色彩免播放器| 亚洲激情电影五月天色婷婷丁香一起草 | 天天摸天天日天天舔| 久久色9| 伊人婷婷五月天| 色婷婷五月天偷拍| 色狠狠色噜噜AV天堂五区| 国产a视频| 伊九九三级区| 日韩久久这里只有精品| 俺也高清无码高清视频| 久久只有18视频| 婷婷五月天A V| 久久九九亚洲| 激情五月开心五月在线视频| 五月婷婷狠狠干| 五月天婷婷激情综合| 噜噜五月天综合| 4438亚洲欧美| WWW久| 99热在这里只有免费精品| 狠狠久综合| 青青草原伊人网| 婷婷久久色| 成人视频网| 丁香久久九九99| 99色最新在线视频| 婷婷六月色开| 99热手机在线精品| 婷婷五月精品中文| 亚洲激情高潮| 激情综合网 激情五月天| 亚洲欧美一区二区三区四区爱爱动图| 性视频久久| 热久久91| 国产伊人大香蕉| 狠狠夜夜五月丁香| 国产九九一区二区三区| 五月婷婷六月开心| 久久HD| 国产婷婷色综合AV蜜臀AV| 久久 中文 日本| 97色伦另类图片小说视频 | 色99免费视频中文| 久久sp免费视频| 这里只有国产精品在线| 日韩无码色色| 狠狠久久婷五月综合色| 激情五月狠狠喔| 五月深爱婷婷| 99re热视频这里只精品| 成人啪啪色婷婷久| 五月婷婷色播视频| 久久狠狠干| av一区免费看| 婷婷五月开心中文字幕在线| 五月天激情啪啪| 欧美性爱专区| 丁香五月婷婷亚洲综合精品在线| 六月丁香啪啪| 99日视频在线| 日日操天天| caop视频| 婷婷五月天成人动漫 | 另类精品视频在线观看| 99热费观看| 99在线视频资源| 天天干在线播放| 射久久丁香五月| 99er这里只有精品| 成人啪啪色婷婷久| 丁香5月综合啪啪| 超碰九色| 六月丁香综合网| 丁香成人色情五月天| 欧美成人精品一区二区| 五月婷婷在线视频| 99热日韩| 情色婷婷五月天| 午夜成人在线免费视频| www.ppypp| chaopengdaxiangjiao| 梁铮版蜘蛛女在线观看| 日本狠狠色| 婷婷色一二三区波多野结衣| 婷婷丁香在线播放| 国产精品18久久久| 婷婷五月激情图片| 五月婷婷综合久久| 91jiuseshunv| 亚洲色色香蕉| 精品视频网| 久久人妻伦理| 拍真实国产伦偷精品| 美女va| 无码99| renrencaoni| 色五月婷婷五月天| 六月丁香深深爱| 思思久久99热只有频精品66| 婷婷久久五月| 五月天伊人| 狠狠狠狠狠狠草| 久久久久久人妻| 日韩色色网| 狠狠操狠狠插| 色色婷婷五月天| 狠狠干,狠狠操| aⅤ79成人片| 五月天婷婷基地| 色婷久九| 在线婷婷| 丁香六月婷婷综合色| 激情爱爱网站| 伊人激情啪啪| 激情综合网五月婷婷| 99热最新| 五月天婷婷久久| 日本精品九九九| 综合久久影院| 一区二区三区四区牛| 五月天激情小说| 日本色99| 丁香五月AV| 亚洲中文丁香| 成人网在线观看视频| 九九亚洲小视频| 日韩欧美性爱| 色色狼人综合| 99re99热| 99婷五月| 国产综合网在线| 99在线视频女女视频| 精品成人久久久久久久_一二三四视| 日本99视频| 夜夜爽天天干| 热久久66| 激情五月天第四色| 激情综合网激情五月天| 中文字幕,综合,91| 亚洲1区| 五月花亭亭| 99久在线精品99re5热视频| 五月婷婷激情网| 五月天啪啪| 欧美五月停| 99热这里只要精品免费| 激情婷婷视频在线| 永久精品| 五月婷婷啪啪网| 4399精品一区二区| 婷婷亚洲影院| 五月婷深深爱激情网| 天天色五月婷婷91久久久久久久| 婷婷五月大香蕉| 97操在线视频| 黄色录像网点| 婷婷综合亚洲| 五月婷婷五月丁香综合| www.99操.com| 婷婷九月色| 天天操,天天插| www.激情五月天.com| 狠狠操综合| 五月婷婷丁香色吧网| 日本啪啪网| 国产人妻777人伦精品HD| 99热国产免费| 九九人人操| 综合在线观看99| 91人人网| 99久久婷婷五月天| 成人亚洲精品| 一级视频网址| 99热免费精品| 韩国婷婷丁香五月| 欧美熟女99| 香蕉视频性爱BB做爱| 亚洲色久| 色色色色色色色色综合网| 日本久久99| 操操操97| 婷婷在线视频| 狠狠操在线视频| 日本97在线视频| 狠狠五月婷婷| www.99热| 色五月婷婷91| 婷婷久久欧美| 婷婷六月综合基地| 69超碰在线| 开心五月网| 九九热最新| 影音先锋女人av鲁色资源网小说免费| 国产中文字幕在线视频免费观看 | 亚洲国产精品成人免费一区久久久在线观看AAAA | 99视频35精品视频在线观看| 丰满少妇猛烈A片免费看观看 | 六月色色| 五月丁香啪啪| 婷婷丁香色五月天久久88| 婷婷丁香先锋资源网站| 免费看欧美成人A片无码| 久久久18| 五月成人网站| 热99只有精品| 色五月婷婷综合在线| 岛囯综合激情网| 天天射影院| 青青草激情网| 久久婷婷五月天激情四射| 久久精品视频9| 色婷婷丁香五月在线| 欧美色图天堂网| 涩涩婷婷五月| 92久操视频| 婷婷丁香无码专区| 五月丁香色| 99福利导航| 丁香五月亚综合图片| 五月丁香狠狠地噜噜噜噜| 干亚洲天堂| 婷婷色五月噜噜| 殴美日比视频| 9福利性视频欧美| 激情五月天婷婷色色色色色色色色色色色 | 亚洲九区| 狠狠爱激情网| 久久99精品久久久久久三级| 亚洲无码免费看| 99综合色色色| 综合av在线| 青柠影视免费高清电视剧| 国产日韩欧美性爱| 激情综合网址| 五月丁香久人妻中文| 婷婷五月天亚洲五码| 欧美成人色婷婷| 99精品免费欧美小视频 | 久久久潮喷-久久久九九-成人AV| www.金莲av| 播丁香五月婷婷欧美| 四川女人毛多水多A片| 欧美大肥婆大肥BBBBB| 婷婷91| 五月天激情久久| 99热这里精品| 婷婷深爱五月天| 中文av网站| 五月婷婷六月天| 亚洲中文乱字字幕在线永久| 五月天伊人网| 另类激情五月| 深爱五月最新网址| 密桃激情五月天综合网| 五月天激情婷婷小说| 激情五月天小说视频| 亚洲色色精品| 九九色视频| 操人妻视频91| 久久这里只有精品8| 欧美色性色好| 99.N在线视频| 97色在线视频| 亚洲天天操| 五月丁香91| www.国产色| www.久久久久| 日本人妻伦在线中文字幕| 久久黄色片| 色亭亭丁香五月天| 日韩无码亚欧无码| 六月婷婷AV| 91凹凸在线| 色综合色色| 色婷婷五月天亚洲| 国产26uuu视频| 激情av| 人人澡天天色天天做| 日韩一66精品| 五月天色网站| 丁香花五月天| 欧美成人网99网| 欧洲亚洲午夜| 激情欧美五月丁香| 五月综合激情婷婷六月色窝| 日本三级99人妇网站| 丁香五月婷婷亚洲激情四射| 大香伊人婷婷| 99热亚洲| 99在线播放视频| 久久ER视频com| 淫荡综合网| 九九性爱网| 婷婷亚洲综合| 美女爆乳18禁www久久久久久| 超碰国产AV| 看婷婷五月天网| 99热这里只是精品| www开心激情网| 五月丁香六月婷婷亚洲| 激情综合五月婷婷| 亚洲综合激情五月久久| 97在线99| www.com亚洲网站在线免费| 五月6香色婷婷视频| 色 五月婷婷基地| 99热在线播放| 伊人网碰碰| 色婷婷丁香A片区毛片区女人区| 99人妻碰碰久久久禁片| 免费操超碰| 人人综合久| 天天操天天操| 亚洲色另类| 国产毛片精品一区二区色欲黄A片| 开心激情站| 人橾人| 婷婷五月丁香综合激情小说| 99精品免费欧美小视频 | www婷婷| 日本色超碰| 丁香五月电影| 国产,欧美,日韩,性爱| 色婷婷六月精品| 国产婷婷综合在线免费视频| 丁香五月成人社区| 欧美大片| 精品亚洲国产成AV人片传媒| 开心五月婷婷激情| 99日韩网站| 色三级色三级| 五月婷婷视频| 色综合色色色色| 天天干天天日日| 久久九九免费视频| 婷婷亚洲综合| 日韩黄色AV无码| 久色视频首页| 狠狠干狠狠干| 激情内射人妻1区2区3区| 97九色视频| 丁香五月亚洲婷婷| 99人人干| 艹色18p| 久久这里只有精彩| 国产性爱一级| 五月久久综合| 色情五月天小说| 亚洲激情精品| 粉嫩AV久久一区二区三区| 玖玖激情五月天| 天天干天天操天天爱| 大香蕉五月天婷婷| 五月丁香综合久久夜夜| 欧美va国产va| 综合另类视频| 日韩啪啪自拍| 99热播放| 五月亭亭性| 丰满人妻一区二区三区| 色色丁香婷婷五月天| 激情五月图| 色婷婷免费观看| 久久九九经典| 99成人无码| 久色| 爆乳熟妇一区二区三区爆乳照片| 亚洲婷婷六月天| 日韩aaaaa| 色婷婷五月在线| 婷婷开心激情| 亚洲亚洲人成综合网络| 九九av| 9月色婷婷| 91人无码久久久久久| 99久久99九九99九九九| 99精品无码| 97操碰在线97| 天天添天天摸天天天天做| 色色色综合网| 97超级碰碰碰| 色五月激情婷婷| 色狠狠色噜噜AV天堂五区| 欧美激情五月综合| 欧美天堂久久| 亚洲AVDVD| 五月天天爽| 色综合婷婷99| 丁香五月婷婷色综合基地| 婷婷婷婷色| 玖玖婷婷视频| 六月丁AV| 综合网精品99| 婷婷五月中文字幕国产| 五月丁香激情综合网| 综合久久影院| 91要啪| 五月婷婷综合激情小说| 伊人五月久久| 国产人妻人伦精品一区二区| 思思久久网| 99视频在线精品| 狠狠色噜噜狠狠| 亚洲综合色婷婷文学| 精品怡红九九九| 一本色综合色| 九九热这里都是精品6| 思思99久久| 久久香蕉福利| 色五月婷婷基地| 亚洲丁香花五月丁香花| 色色色99韩| 日日干日日| 九九热这里只有精品首页| 极品另类| 婷婷五月大香蕉| 丁香五月婷婷亚洲综合精品| 97碰操| 99精品视频在线观看| 丁香五月天婷婷大香蕉| 九九热只有精品| 亚洲成人网站在线观看| caobi四区| 丰满少妇猛烈A片免费看观看| 激情六月下句是什么| 婷婷伊人网| 五月网激情| 激情又色又爽又黄的A片| 丁香色色色| 九九视频免费| 久久总和99| 亚洲av免费在线| 日韩成人av在线| 女人露出p毛视频www网站| 丁香五月天堂网| 在线VA视频| 日韩九区| 亚洲综合网激情五月天| WWW色五月| 99久久综合精品五月天| 91丁香色五月| 婷婷欧美| 91肏| 丁香六月啪| 婷婷色播色五月五色五月天色妇| 精品人妻伦九区久久AAA片| 综合久久久婷| 人妻久久久久久| www99在线观看视频| 天天干夜夜想| 激情亚洲色图片丁香综合| av在线婷婷| 激情五月天综合婷婷网| 99色免费在线观看| 黄色五月婷婷| 超碰大香蕉网| 丁香六月婷婷久久综合| 色综合播放| 黄色短视频在线观看| 色五月成人网| 四月婷婷五月丁香| 99爱视频在线观看| 五月开心激情网| 五月婷综合激情| 五月综合久久| 99精品爱| 婷婷五月性感| 激情综合网五月| 色婷婷欧美| 日本99热| 午夜做爱影院| 色婷婷操逼| 操一区| 人妻久久久久久久久久久| PORNY九色9l自拍视频成人| 99这里只有精品| 欧美成人色婷婷| 五月婷婷综合久久| 99热久久这里只有精品| 五月花在线观看视频| 秋霞日本免费毛片A片| www99热| 久热A| 9l视频自拍9l九色成人| 色色a| 丁香成人综合| 3DAV亚洲香蕉久久 一区二区| 色婷婷色99国产综合精品| 激情综合女人网五月播播| 婷婷情色五月| 五月丁香啪啪网| 五月婷在线视频免费播放| 国产亚洲在线观看| 国模狼狼| 91碰碰碰| 色。 日日日| 丁香婷婷综合激情五月色| 成人做爰高潮A片免费视频 | 午夜不卡久久精品无码免费| www.婷婷五月天| 成人必爱视| 91打屁股视频网站| 男人操女人高潮91视频| 美欧日韩国产成人在战| 黄页大全十八禁| 三级三久久线久久99久目本WW| 大战熟女丰满人妻AV| 99色婷婷视频| 色偷偷色婷婷| 天天综合网~91综合网| 熟女人妻一区二区三区免费看| 99色 | 国产精品视频久久99| 综合玖玖性爱免费视频| 人碰人人人玩91| 99视频在线精品| 色色色99| 婷婷激情五月综合丁| 婷婷色中文| 色五月丁香91| 五月婷激情| 五月婷婷色| 婷婷六月花| AV天堂淫乩| 久热9|