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
返回資訊列表
青996青| 最新久久网址| 五月婷婷综合视频| 99这里只有精品|v| 26uuu.| 秋霞九九无码| 亚洲国产精品VA在线看黑人| 色五月综合激情| 丁香婷婷人妻综合网| 99精品网址| 六月丁丁香| 激情五月婷婷综合色播小说| 丁香婷婷91在线观看视频| 天天射影院| 丁香六月激情国产| 色婷婷丁香五月天| 天天射天天射一道本日本社区 | 久久亚洲网| 五月婷婷丁香网| 久操大| 色色亚卅| 国产精品-第3页-91JQ就要激情网91JQ5.JQJQ926.XYZ | 99热这里只有精品99| 五月天天天综合| 亚洲成人AV一区在线观看| www狠狠| 色噜噜狠狠色综无码久久合欧美 | 色色色777| 99超碰人人| 国产精品久久久久9999小说 | 精品久久9| 欧美亚洲操逼| 99精品在线下载| 大香蕉啪啪啪| 91精品久久久久久| 婷婷五月天精品| 欧洲亚洲精品| 操射国产日本| 欧美综合五月丁香六月婷| 99综合免费视频| 99re思思久久| 5月婷婷激情在线| 五月丁香好婷婷A片网| 亚州婷婷五月激情综合| 国产精品激情AV久久久青桔| 五月丁香色婷婷| 超碰在线看| 久久天堂| 亚洲精品色| 人人摸人人干人人做| 天天操天天爽天天爱| 国产激情视频在线观看| 色五月综合婷婷久久综合婷婷久久综合婷婷久久综合婷婷久久 | 99色综合网| 在线日本www| 久久激情视频| 九九Av| 丁香五月婷婷影院| 五月丁香久久| 色狠狠婷婷| 欧美性猛交XXXX乱大交极品| av高清无码| 色婷婷成人做爰A片免费看网站| 丁香五月天论坛| 狠狠狠狠狠操| 丁香五月婷婷AV在线| 婷婷五月噜噜| 婷婷五月天综合网| 激情伊人五月天| 婷婷金品综合视频| 午夜亚洲AV日韩无码| 9热视频在线观看| 99久久这里只有精品| 九九热视频这里只有精品| 五月婷婷自拍| 六月丁香中文字幕| 欧美99热| 97碰 在线视频观看| 色色欧美。| 91色五月在线观看| 婷婷色色综合| 91色逼| 九色七七| 超碰在线视屏| 欧美性爱特黄一级aaaassss| 丁香六月婷婷久久综合| 六月天婷婷| 成人婷99最新| 国产成人精品123区免费视频| 欧美成人猛片AAAAAAA| 狼人伊人天堂| 啪啪激情网| 激情婷婷色色| 久久九九大香蕉电院| 91精品国产综合久久密臀| 婷婷色爱| 九九热在线精品| 国产偷人爽久久久久久老妇APP| 亚洲狠9| 黄久久久| 五月丁香六月婷婷中文版| 草操AV在线| 极品人妻videosss人妻| 久久久久激情网| 五月天婷婷丁香基地在线观看| 96精品久久久久久久久| 天天干在线播放| 免费超碰在线| se99高清无码| 天天日天天爽夜夜爽| 99色中文| 成人无码髙潮喷水A片| 九月婷婷人人操人人舔人人爱| av线电影| 狠色狠色综合久久| 26uuu在线观看| 香蕉久久av一区二区三区| 超碰在线免费观看3 9| 99婷婷五月天激情| 六月丁香婷婷尤物| 一级黄色影片| 黄色91在线观看| jiqingtaose五月天| 中文字幕婷婷五月天| 色青五月天| 97丁香五月| 日韩无码成人电影| 99热激情| 婷婷五月丁香色播| 亚洲狠狠操| 97碰碰人人| 婷婷丁香91综合| 久久刺激网| 九九成人精品| 日本久久99| 最新日韩久热免费视频看看| 五月亭亭综合五码| 国产欧美精品AAAAAA片| 色色自拍视频网站| 99人人干| 热99精品视频五月| 五月综合在线| 激情五月婷婷她| 婷婷五月色影视先锋| 亚洲色小说在线综合| 色婷婷a v| 九九99偷拍视频| 婷婷国产综合| 丁香六月婷| 天天干,天天操,天天射| 日韩99精品| 免费视频WWW在线观看网站| 99久久99久久| 91丨九色丨熟女|新版| 狠狠ri| a色色色色色| 99视频在线精品| 五月婷婷香蕉| av免费人人| 色婷婷丁香A片区毛片区女人区| 日韩不卡DvD| 99热在线观看精品| AV网址大全在| 久热只有精品| 五月丁香综合中文| 夜夜躁婷婷AV| 涩综合网| 亚洲无码色色| 色,激情五月天| 91要啪| 激情婷婷综合网| 亚洲情a| 伊人高清无码| 开心五月深爱五月丁香五月激情五月| 97碰碰草| 亚洲精品国产精品乱码视99| 性爱激情小说AV五月丁香花| 日日撸夜夜操| 超碰97免费在线| 五月天涩涩| 超碰色碰碰| 先锋av性爱成人电影| 色综合天天| 伊人大香五月天| 六月丁丁香| 五月丁香六月综合情在线观看| 性爱网五月天| 99热99网| 亚洲深喉AV| 丁香六月婷婷色XXXX| 久久久天堂国产精品女人| 婷婷色女| 91.www综合| 五月天婷婷伊人| 色婷婷基地 | 思思99精品视频在线观看| 天天综合精品| 亚洲bt丁香五月天婷婷激情小说| 国产44页| 伊人五月综合网| 性韩日色婷婷五月天激情啪啪XXX| 任你爽视频| 激情综合五月婷| 天天色播| 婷婷五亚洲| 久久久潮喷-久久久九九-成人AV| 婷婷射综合| 97操在线视频| BBWCUCKOLD精品熟妇| 欧洲激情五月天| 9色资源在线| 综合九九| 色色99| 国产亚洲精品久久久久久牛牛| www。五月天。com| 国产午夜精品一区二区| 五月丁香六月激情| 狠狠色噜噜色狠狠狠综合久久成人波| 久久最新色| 啪啪综合网| 婷婷久久五月天亚洲欧美国产日韩在线观看 | 久久宗合影| 色婷婷亚洲| 婷婷基地成人五月天| 亚洲中文字幕在线观看| 久久98热re| 九九精品热| 在线18av | 婷婷网五月天| 色五月丁香五月五月婷婷| 狠狠插.com| 热99免费在线| 婷婷丁香亚洲五月天| 婷婷五月a| 国产成人亚洲综合A∨婷婷| 开心婷婷五月天电影院| www.婷婷六月天| 五月丁香色色网| 欧美丁香六月激情视频| 伊人婷婷综合| 99久久超级| 97丁香婷婷| www.狠狠狠.com| 婷香五月激情视频| 激情丁香五月天综合| 国产乱子轮XXX农村| 丁香六月五月天| 伊人影音无码一区二区三区| 美腿丝袜AV天堂网| 国产欧美性成人精品午夜| 久久艹99| 久久九九热视频| 日本老女人黄页在线播放| 亚洲综合色成丁香五月色| 久9久9久9久9久9久9| 天天射综合网天天插| 色综合视频| 99在线精品免费视频| 婷婷99热| 色色色色色网| 色五月成人在线| www.zbzhongsen.com| 超碰无码老师| 国产毛片精品一区二区色欲黄A片 国产人妻777人伦精品HD | 久久人妻高清中文| www.狠狠操.con| 五月停性愛| 99爱视频在线| 中文字幕人妻在线| 无码动漫av| 五月丁香在线偷拍视频| 欧美久久婷婷| 精品久热| 激情六月丁香| 久青操| 欧美一级操逼视频| 五月婷婷丁香六月在线| 操逼福利视频| 五月天色婷婷小说| 婷婷丁香人妻| 日韩无码人妻一区二区三区综合| 天天爽天天爽天天爽天天爽天天爽| www.色色com| 国产人妻777人伦精品HD| 国产9色在线/日韩| 婷婷五月丁香五月| 五月天成人免费视频| 夜夜夜叫天天天做| 狠狠擼综合| 综合婷婷| 成人噜噜网| 婷婷色五月激情强奸四射| 九月婷婷在线观看| 超级久久久| 亚洲精品无AMM毛片| 色五月激情| 久99久精品| 婷婷五月丁香六月| 91精品综合久久婷婷九色| 五月丁香另类图片| 丁香久月| 大香蕉久| 六月色色| 97五月天婷婷| 五月情涩综合婷婷| 五月丁香欧美综合| 亚洲综合另类| 人人爱国产| 香蕉婷婷| 欧美色色色| 丁香激情网| 丰满女老板BD高清A片| 亚洲无码99| 狠狠干综合| 九热视频在线精品15| WWW.桔色成人.COM| 欧美日韩一区二区三区四区| 99操逼| www.狠狠| 人操91在线| 超碰人人99| 9l视频自拍9l视频自拍九色学生| 色5月婷婷| 丝袜激情网| 亚洲啪啪视频| 亚洲人人96@| 色婷婷激情小说网| 五月婷婷第四色| 99热这里只| www久久艹| 成人丁香五月| 色婷婷久久综合丁香五月| 五月天婷婷激情春色小说| 天天狠狠色综合| 六月综合在线| 大香蕉九九| 久久久久人妻| 亚洲免费在线观看岛国| 色色色色欧洲| 99re这里只有精品在线观看| 五月天久久综合| 天天干夜夜谢| WWW.五月com| 一起草无码| 亚洲婷婷视频| 婷婷五月深深爱| h在线看免费版在线看| 婷婷五月天天爽| 久久XX| 色啪网| 91狼友视频在线观看| 美欧成人视频| 六月婷五月丁香| 亚洲精品激情| 超碰狠狠操| 97sese婷婷| 91丨九色丨东北熟女| 婷婷五月天影视| 亚洲色热| 激情五月天婷婷播播久久综合91| 婷婷五月在线视频| 激情av网| 91chinese在线| 色五月激情视频在线综合| 亚洲噜色| 日本一级特黄大片AAAAA级| 色婷婷狠狠| 99欧美三级视频| 97人人草| 狠狠色噜噜狠狠狠狠综合| 天天天天操| 日韩五月婷婷| 可以免费看的av网站| 成人AV免费观看| 99色热综合| 黄色片区子| 五月丁香花开综合网| 色播五月丁香| 色www.con| 深爱网深爱综合网| 五月婷婷中文| 亚洲无码成人| 五月天亭亭俺也| 六月婷婷综合| 91大神操美女| 五月天亚洲综合网| 色狠狠色噜噜AV天堂五区| 99狠狠操一| 九九婷婷五月天影视| 色五月天激情| 91九色精品女同系列| 成人小说色图婷婷五月| 丁香成人综合| 超碰在线国产| 丁香五月婷婷狠狠色| 五月婷婷丁香俺日污视频| 老师的粉嫩小又紧水又多A片视频| 精品久久9| 六月丁香五月天| 亚洲国产精品VA在线看黑人| 夜夜躁狠狠| 色99热| 97婷婷五月丁香| 千人斩操逼| 大香蕉啪啪网| 99热国产精品| 操人无码| 超碰国产在线| 丁香婷婷五月| aⅤ79成人片| 九九热10| 五月婷婷啪啪网| 99无码精品| 久久艹网| 婷婷成人视频| 影音先锋 一区| 香蕉AV777XXX色综合一区| 无码成人AAAAA毛片AI换脸| 一区二区中文字幕| 99久.| 婷婷五月天亚洲| 99男人的天堂| 99在线69| 久久久人妻人伦| 思思热在线观看| 日本三级片片| 日本九九视频| 99久久九九| 97色婷婷成人综合在线观看| 天堂网色色| 婷婷5月九九| Www.久久| 五月天激情综合| 日都一级A片| 成年人丁香五月| 亚洲AV无码一区二| 亚洲av网站| 五月丁香啪啪啪综合网| 色婷婷丁香| 蜜桃婷婷五月| 任你草| 色情五月天首页| 综合网色| 淫水导航| 99超级超级超级碰| 亚洲欧美丁香五月天亚洲欧美| 97超级碰碰碰| 婷婷五月综合社区| 秋霞学生妹一二级| 91男人资源站| 亚洲成人网站在线播放| 免费看欧美成人A片无码| 79亚洲精品少妇| 国产午夜精品一区二区三区四区| 天天综合天综合| 亚洲无码免费看| 丁香五月婷婷五月天| 另类A片| 婷婷91| 99亚洲色| 亚洲综合1024| 3p久久| 日韩精品无码AV| 91人人网| 日本69日人视频| 久久婷婷免费| 久久这里99| 色综合色综合色综合高潮| 亚洲天堂玖玖| 欧日韩成人| 高清国产AV| 激情九月综合| 白天AV月月| 综合爱久久| 99热老网站| 天天插夜夜爽| 欧美日韩成人一区二区| 无码成人AAAAA毛片AI换脸| 色色 亚洲| 亚洲永久四色| 婷婷深爱五月| 怕怕視頻| 九月婷婷综合网| 色色a| 色五月丁香六月婷婷| 日韩av在线电影| 99性爱| 播五月丁香三月婷婷| 99re这里只有精品国产99| 综合精品99| 亚洲高清在线| 久久综合中文字幕| 激情婷婷五月基地| 色婷婷91激情小说| 九九99香蕉在线视频播放| 男女啪啪做爰高潮无遮挡| 亚洲精品色| 色人五月婷婷| 色色色欧美| www.久操| WwW色婷婷| 色激情五月| 色偷偷色婷婷| 开心五月婷婷在线视频免费观看| 啪啪综合网| 免费成片在线观看| 五月激情丁香啪啪| 天天色粽合合合合合合合| 日本婷婷色日| 激情五月丁香六月婷婷| 五月色无码| 久久久久婷婷| 五月丁香色婷基地综合久久| 激情五月天婷婷在线网址发给我| 伊人五月久久| 激情五月图| 五月天丁香成人| 色婷婷丁香AV综合| 国产精女同一区二区三区久| 日日做A爰片久久毛片A片英语| 亚洲99热| 色婷婷丁香五月综合| 26uuu国产色| 亚洲超碰在线| PORNY九色9l自拍视频成人| 欧美超碰亚洲| 一起草日本| 蜜臀久久99精品久久久久久酒店| WWW.桔色成人.COM| 国产在线黄色| 丁香久久| 五月丁香六月婷婷操操操| 丁香六月毛片| 热99这里只有精品视频| 五月丁香婷婷六月天| 俺也去婷婷五月天第五色| 91丨九色丨熟女|老版| 狠狠色网| 久久久久网站| 五月色丁香| 色五月婷婷五月天激情综合| a免费在线| 午夜69成人做爰视频| 婷婷丁香熟妇综合网| 日韩啪啪视频| 久久ab| 青草激情综合| 69er小视频| 婷婷激情五月天7| 91操人| 婷婷丁香色五月亚洲| 超碰人人操在线| 九色视频91| 日韩亚洲视频| 69堂午夜视频最新地址| 精品无码人妻一区| 伊人五月天婷婷| 午夜国产精品AV在线播放| 狠狠狠狠狠草| 另类图片婷婷五月天| 日韩五月天婷婷| 五月丁香婷婷六月天| 亚洲无码成人性爰网| 99re思思| 婷婷基地五月色| 五月激情婷婷开心| 人人干女人| 激情性爱五月天| 五月丁香婷婷成人网| 丁香五月社区| 久在线88综合| 婷婷久久婷婷| 大香蕉五月丁香| 婷婷综合久久| 五月天婷婷开心| 丁香六月亭亭久久综合| 91婷婷色| 婷婷精品| 超碰97色| 色狠狠五月天| 热99精品视频| 丁香六月婷婷色XXXXX| 丁香五月手机在线| 色激情五月天| 9精品一区| 青青草原亚洲天堂| 丁香五月花婷婷开心| 六月丁香婷婷色69| 五月天狠狠色| 性一交一乱一交A片久| 任你搞免费视频观看| 婷婷色网址| 色狠狠999综合| 亚州激情网站无码| www.91九色| 2050人人操免费工开爱| 婷婷五月丁香基地| 这里只有精品视频在线| 九九视频在线观看视频6| 四川操逼站| 99在线精品视频观看免费下载| 99精品无码网站| 波多野结衣AV无码Porn| 天天躁日日躁狠狠躁日日躁2022年5月9日 | 成人亚洲精品久久久久| 玖玖婷婷综合| 国产精品香蕉| 99热综合| 国产在线中文字幕| 色五月丁香伊人| 亚洲综合久| 丁香五月婷婷五月| 色九月欧美| 五月天欧美 另类小说| 国产精品久久7777777精品无码| 人人97碰| 久久资源综合| 亚洲综合网激情小说| 婷婷丁香五月综合免费视频百花| 国产精品久久久久久久久久久久| 久久9热| 日日噜狠狠色综合久久| 性爱视频99| 午夜日韩久久久网站| 色综合久久88色综合天天人守婷| 91碰| 琪琪色影音先锋| 99热日| 久机视频这只有精品| 婷婷激情五月天激情小说 | 五月五婷婷| 天天爽天天干| 精品一区二区三区免费毛片爱 | 第四色婷婷五月| 婷婷五月天福利| 伊人网色婷婷五月天| 日本色色网| 色色a| 91碰免费视频| 中国AV性爱观看| 开心深爱激情网| 激情五月天福利| 开心四月婷婷在线色播播| 色五月丁香五月| 日韩久综合| 99爱在线视频观看| 99热精品在线播放| 大香蕉中文| 天天操人人干| 日韩无码性爱| 狠狠操狠狠插| 任你操精品免费| 日日夜夜狠狠| 啪啪黄页网| 婷婷久久综合| 色婷婷色情| 中文字幕AV网址| 欧美三级黄色片久久| 91九色视频在线观看| 丁香五月婷婷综合精品素人| 九月色婷婷综合| 99热资源在线| 欧美日综合| 9久精品| 色五月婷婷五月| 久久五月天精品视频| 超碰精品在线| 婷婷丁香人妻| 丁香五月停停av| 色综合色综合色综合色综合| 2020日日干| 婷婷激情五月吧| 日本99久久| 亚洲婷婷开心五月| 伊人网色婷婷五月天| 五月婷婷亞洲中文| www91久久| 琪琪色五月天| 日本的α片xxxwww| 黃色三级三级三级三级 qixing300.shrkbk.com www.jinbozs.com tianmiaosw.com | 91人人操.COM| 99热自拍| 丁香五月激情婷婷| www久久久久| 亚洲成人在线播放| wwccc久久久| 99综合99| 8区视频在线| 新99思思视频| 久在线综合69| 夜夜 操无码| 久久99热这里| 成人短视频免费| 色欲婷婷五月天| 99在线免费视| 九九精品碰| 操97| 婷婷六月激情丁香| 婷婷网影院| 99超级碰免费视频| 99视频网| 天天激情5月天亚洲| 99超超碰| 美女激情综合| 第四色婷婷五月| 激情五月天啪啪| 国产美女无遮挡裸体毛片A片| 狠狠操狠狠干综合| 丁香六月啪啪啪| 激情内射人妻1区2区3区| 5月婷婷6月六月丁香| 97色色视频| 五月天婷婷激情综合| 男人的天堂999| 秋霞九九无码| 97av在线视频| 色五婷婷在线视频| 5月婷婷6月丁香aV| 欧美激情中文字幕| 乱乱av| AV在线观看网站| A色色| 秋霞性爱AV| 99久久久精品| 五月婷婷六月激情| 激情人妻综合| 五月天久久丁香| 五月丁香猫咪久久婷婷综合视频激情四射网入口| www.色多多婷| 久久婷婷五月天| 超碰网站在线观看| 色婷婷丁香中文在线播放| 婷婷伊人网| 婷婷人妻激情| 久久AV无码精品人妻系列试探| 综合激情在线| 夜夜干夜夜操| 久99久热只有精品国产99| 久9久9久9久9久9久9| 超碰免费电影| 五月开心播播网| 欧美成人A片AAA片在线播放| 青青草五月天| 99热这里只有精品在线播放| 丁香 婷婷五月| a九九热www| 亚洲a片免费观看| 疯狂做受XXXX高潮A片| 97人妻碰碰中文无码久热丝袜| 深爱激情六月天| 婷婷丁香五月天小说| 欧美欧盟性爱网| 超碰人人91| 九热视频免费观看| 99精品在线| 婷婷的99视频网站| 精品色色| 久热这里只有精品6| 五月四色婷婷| 极品 少妇 内射| 综合婷婷六月| 丁香六月婷婷开心| 婷婷五月深情丁香深爱日韩| 久久久大香蕉| 91青娱乐青青草| 伊人色五月| 丁香五月婷婷婷桃花影院| 123日本不卡在线| www,奇米影视| 666555。COm毛片| 精国产品一区二区三区A片| 五月天婷婷综合| 天天干狠狠| 夜夜操天天干| 99热这里只有精| 亚洲国产99| 亚洲成人五月天| 一起草av| 大香蕉五月天婷婷| 国产 码在线成人网站| 婷婷亚洲综合| 五月婷婷丁香| 国产69精品久久久久999小说| 国产99久久久国产精品免费看| 99热在线播放| 午夜天堂一区人妻| 日本无码专区| 婷婷丁香久久网| 午夜在线成人网站免费观看| 美女被肏网站在线看| 91seAV| bukadeavzaixian| 婷婷综合日本| 操操自拍| 99成人网一区| 十月丁香婷婷| 激情婷婷五月天在线观看| 狠狠插狠狠| 五月婷婷丁香网| 玖玖五月丁香| 99re8这里只有精品99re8热视频| 五月丁花色综合网| 亚洲噜色| 色情五月综合婷婷| 丁香婷婷色色| 婷婷网五月天| 婷婷97狠狠成人网站| 丁香五月激情图片婷婷| 色五月色情| 另类激情四射| 婷婷八月激情| 欧美综合在线五月天色婷婷| 丁香六月成人| 九九aV| 国产亚洲精品AAAAAAA片 | 久久曰9| 色哟哟性爱av| 男人的天堂999| 欧美综合激情五月| 99热这里只有精品55| 91久久久久久久| 免费视频WWW在线观看网站| 精品热青草| 九九大香视频| 亚洲第一色色色色| 五月丁香六月婷婷无码| 91九色网| 丁香五月天堂婷婷| 热99免费在线| 99这里只有精品8| 可以观看的AV| 久久大香蕉| 碰超亚洲| 超碰在线人人| 婷婷玉月丁香五月在线视频| 思思热在线视频精品| 久久久这里有精品| 色婷婷精| 婷婷久久五月天| 丁香五月婷婷成人网| 97干欧美| 丁香五月狠狠在线观看| 九九99九九99偷拍视频免费看| 精品无码色欲AV| 天天干天天爽| 麻豆AV一区二区三区| 成人AV中文字幕| 中国AV性爱观看| 猫咪伊人久久| 亚洲热视频| 六月色婷婷| 欧美婷婷九月| 凹凸探花电影| 亚洲综合在线播放| 9热在线| 九九综合视频在线观看| 五月婷婷香| 99在线精品免费视频| 在线观看996精品| 五月天激情综合10p| 色色色免费视频| 亚洲另类AV| 亚洲尤物在线| 色婷婷亚洲精品天天综| 午夜日韩久久久网站| 六月伊人婷婷| 热99在线| 97五月久久丁香婷婷| av网站中文| 婷婷色在线| 91人人网| 久久爱婷婷| 97丨九色丨国产丨PORNY| 婷婷五月天久久久| 26UUU精品一区二区| 不卡在线中文字幕无| 大香蕉伊人久久| 激情婷婷五月| www.久99| w婷婷五月婷婷w| 五月天婷婷激情| 大香蕉九操| 天天爱综合网| 精品九九久久| 涩涩网五月天| 亚洲国产精品二二三三区| 色婷婷五月综合| 激情綜合網址| 啪精品| 可以免费看的AV网站| 天久综合91综合首页| 激情综合4月| 激情五月综合网| 五月天丁香网站| 色香久久| 狠狠99| 久久这里只精品| 激情五月天色色色| 97婷婷五月天| 碰99在线| 小视频一区| 99热热热99精品婷婷| 激情婷婷综合| 色婷婷丁香五月| 天天综合色丁香| 我爱大香蕉| 激情五月天在线观看色婷婷| 五月丁香影视| 色婷婷中文字母五月丁香| 99在线小视频| 婷婷和五月天| 婷婷五月天网| 天天操夜夜夜夜爽| 五月天激情国产综合婷婷婷| 五月天综合缴情网网站0| 99热免费| 一區四區歐美日韓| 亚洲V国产V欧美V久久久久久| 国产阿姨日皮艹逼内射视频| 国产99久久久国产精品免费看| 天天摸,天天爽| 午夜少妇在线观看视频| 精品综合久久久久久五月天| 激情内射人妻1区2区3区| 久久婷婷五月综合色播| 狠狠噪| 五月草视频| 色一情一乱一乱91Av| 亚洲网站999| 深夜男女福利刺激影院一区完整| 99热这里精品| 婷婷五月天无码熟女| 97caop| 日韩十国产极品久久| 天天射色五月天| 五月婷婷六月丁香玖玖玫瑰91| 色碰碰| 九九色色| 激情 婷婷 丁香五月天| 国产精品A片在线| 亚洲人人操| 激情丁香社区| 日本猛少妇色XXXXX猛叫| 噜噜噜噜在线| 欧美碰碰| 五月婷婷啪| 少妇丁香婷婷| 玖玖婷婷免费| 亭亭玉月丁香| 日本色频| 五月婷婷影视| 色婷婷精品视频| 婷婷五月天AV网| 99热在线观看| 99无码| 亚洲小视频免费观看| 九九9久九9国产视频| 可以看的AV网站| 亚洲愉拍99热成人精品| 色婷婷成人做爰A片免费看网站| 狠狠色综合五月| 强伦轩人妻一区二区电影| 色情五月丁香| 亚洲情a| 99精品久久久| 日产精品一线二线三线芒果| 九九热在线观看视频| 亚洲精久久| 九色亚洲| 丝袜大香蕉| 五月丁香六月停停| 涩综合网| 99爱操| 97碰碰人人| 亚洲中文乱字字幕线在永久| 青青草轻轻操| 五月天色色无码| 色婷婷激情四射视频| 五月丁香五月丁香| 婷婷综合日本| 成 人片 黄 色 大 片| 播五月开心婷婷欧美综合| 色亭亭五月天网扯| 三级毛片7979| 超碰狠狠干99| wwwss在线观看| 99久久九九| 99,色| 九九re视频在线视频| www久| 九九无码| 色色网站免费观看| 亚洲中文字幕AV| 天天久久婷婷| 国产毛片欧美毛片久久久| 午夜九九九九九九九九九九九九九| 思思色综合网站| 啪啪激情综合| 伊人丁香五月婷婷潮吹| 五月丁香成人网| 超碰资源在线| 五月激情婷婷女| 99re久热只有精品6在线直播| 六月婷婷啪啪| 99在线看视频| 中文幕无线码中文字蜜桃| www.91九色| 51avj视频大全| 狠狠狠人妻| 99热久| 婷婷六月天天| 天天操天天插天天射| 色情成人五月天| 中文字幕在线播放视频| 丁香五月电影| 日日日影院| 天天噜天天爱| 五月婷视频久久| 九九99香蕉在线视频播放| 婷婷丁香六月天激情四射网| 99视频内射三四| 亚州色色色| 久久精品五月天| 五月婷婷69| 3www激情| 丁香激情六月天婷婷| 97五月天婷婷午夜| 色亚洲无码| 亚洲AV人人操| 大香蕉九九热| 婷婷99丁香| 奇米影视777在线_在线观看午夜_h小视频在线观看_岛国大片 | 操一区| 欧洲一区二区| 激情网五月天| 天天操比比| 亚州操人在线视频| 在热视频精品| 婷婷五月天天aV| 五月丁香欧美综合免费视频| 丁香五月第九色| 天天做天天爱天天日| 欧美A级网站| 丁香九月婷婷| 婷婷99狠狠| 99久久婷婷国产综合精品草原| www.婷婷五月天| 色综合久久88色综合天天99| 亚洲AV网站在线观看| 2020日日干| 秋霞日本免费毛片A片| 7777精品伊人久久久大香线蕉最新版| 东北黄色一级| 久久玖玖综合| 色99在线看| 色五月色图| 九九九九国产| 丁香五月在线人妻| 丁香六月婷婷综合色| 激情五月伊人婷婷| www.五月激情.com| 九九爱看亚洲| 激情五月亚洲| 女高怪谈在线观看| 激情五月天小说|五月天开心激情网|亚洲精品国产自在现线|黄色五月天 | 国产欧美日韩综合精品一区二区| 北京熟妇搡BBBB搡BBBB| 成人精品视频99在线观看免费| 亚洲视频在线观看| 婷婷五月五月丁香| 五月天婷婷丁香人人操91| 国产亚洲色婷婷久久99精品91 www.riverspirits.org www.hnnun.com www.changh | 欧亚成人A片一区二区| 免费无码毛片一区二区A片| 先锋影音av色五月天资源站| 沈娜娜av| 99色日本| 91丨九色丨大屁股| 天天操天天爽天天爱| 婷婷伊人久久综合| 综合婷婷都市激情| www.91操| 九九综合久久| www.婷婷com| 丁香五月婷婷99| 深夜男女福利刺激影院一区完整| 狠狠色婷婷在线| 天插天啪天啪天啪| 成人开心五月天| 五月丁香成人| 性爱综合网| 免費观看aV在线网址| 99ri在线播放| 亚洲日韩一页精品发布| 在线看AV| 亚洲网站999| 第四色色六月色综合| 五月婷婷视频28| 精品99在线| 色情婷婷| 最新婷婷五月丁香| 97色久| 思思久久96热在精品国产,| 激情五月色播五月| 亚洲操b| 天天日色情| 亚洲乱码在线观看| 亚洲激情五月婷婷日日| 天天透天天爱| 色五月丁香五月| 丁香婷婷婷| 伊人婷婷青青cao| 99热这里只有精品官网| 久久女人天堂| 久久99久久99精品,久国产,久久精品免费,99久在线,久久久久国产精品免费网站,9 | 久久综合婷婷五月| 天天在线天天综合网色| 婷婷五月天激情开心网| 久久婷婷五月综合| 99热欲| 99亚色色色| 99亚州综合精品成人网| 色五月 五月婷婷| 五月久久| 综合激情五月丁香9999久久精| 99热这里只有免费精品| 99热综合网| 日本三日本三级少妇三级66| 五月丁香日本片| 久久性爱视频网站| 嫩草AV久久伊人妇女超级A| 97色婷婷在线观看| 夜夜爽日日躁| 亚洲成人网在线观看| 91九色PORNY大屁股| 欧美日韩一a.无| 五月丁香婷婷AV| 午夜精品人妻无码一区二区三区| 五月婷婷婷综合网| 成人午夜免费电影| 嫩草AV久久伊人妇女超级A| 色五月大| 6080av| 五月天激情图片| 欧美色偷偷大香| 婷婷区日本| 91婷婷丁香| 欧美婷婷精品激| 毛片新网地| 六月丁香久久| 99久在线视频| 99这里| 久久婷婷免费| 婷婷五月成人有| 久久久久久激情| 丁香六月婷婷社区| 丁香五月天激情AV| 五月丁香婷婷啪啪| 另类激情五月| 26UUU精品一区二区| 亚洲超碰青涩| 美女婷婷六月色| 色婷婷久久| 另类激情码| 丁香五月综合AV在线| 久久激情中文| 99热这里只有精品98| 欧美激情综合| 站长推荐无码播放| 五月丁香六月色| 婷婷九九色| 欧美婷| 乱岳熟女50岁| www.25五月婷婷| 亚洲AV免费在线| 日本久久视频| 丁香五月激情综合| 99热久97| 色五月天在线观看| 99碰碰碰| 亚洲丁香网| 亚洲乱码日产精品BD| 激情99。| 色婷婷91激情小说| 91天天操天天干天天射| 五月丁香激| 综合狠狠干| 色婷婷丁香九月| 99九九在线视频| 玖玖婷婷精品| 丁香久久久| 精品亚洲国产成AV人片传媒| 激情开心五月天| 丁香天堂夜| 久1色色| 97色97干| 丁香婷五月天开心六月| 狠狠色丁香婷婷五月| 5月婷婷6月六月丁香| 激情久久 婷婷| 五月婷婷|欧美| 久久九九玖玖| 欧洲综合视频| 深夜男女福利刺激影院一区完整| 超碰人人操在线| 在线中文字幕视频| 夜夜爽天天爽| 免费色色色| 香蕉AV777XXX色综合一区| 天天爱天天做天天爽| 免费91久久精品| 玖玖资源站蜜臀| 激情婷| 91丨九色丨白浆秘| 五月天久久久| www.色婷婷.com| 人人添人人| 丁香婷婷五月综合欧美另类| 久久五月天激情| 九色 在线| 99热精品在线观看| 视频免费精品免费精品免费精品免费精品免费精品免费精品免费99 | 色婷婷久久视屏| 五月丁香操婷逼| 亚洲热手机在线观看| 色噜噜狠狠色综无码久久合欧美| 婷婷五月综合在线视频| 一片AV片免费播放| 超碰三级片| 天天舔天天插天天爱| 亚洲欧美在线观看| 99热6色| 久久综合丁香| 99热9| 五月天激情子轮| 狠狠爱夜夜| 激情久久久| 欧美97p| 激情久久 婷婷| 五月丁香六月色| www.狠狠干com| 天天se在线视频| 激情婷婷五月天| 国产精品成人av在线观看春天| 啪啪操操| 另类在线| 激情五月,婷婷五月,丁香五月| 99爽视频| 无码人妻AV久久久一区二区三区 | 婷色人人狠| 五月激情婷婷偷拍| 久久伦乱| 色噜噜狠狠色综合日日免费| 欧美婷婷综合| 欧美性丁香色色五月天干干| 台湾佬天天日丁香婷婷五月天| 五月婷婷六月丁香玖玖玫瑰91| 热久精品| 婷婷五月天狠狠| 激情婷婷五月久久| 91/九色黑人| 久久久性爱视频| 亚洲五月色| 丁香九月综合| 狠狠色噜噜狠狠亚洲A∨| 日日撸夜夜操|