免费国产精品自在自线-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
返回資訊列表
www五月天com| 丁香五月综合AV在线| 激情丁香六月| 欧美 日韩 成人在线| 懂色av粉嫩AV蜜臀AV| 九玖视频这里只有精品| 99色| 五月婷久久在线| 国产成人一区二区三区在线观看| 婷婷五月情天| 五月天色色色| 日韩99无码| 五月天另类小说久久小说网| 综合AV在线| 久操大香蕉| 日韩在线视频中文字幕| 91精品激情9| 久久五月婷天天干| 99精品自拍| 97AV在线视频| 亚洲性爱区无码区| 超黄亚洲瑟瑟网站| 99啪视频在线观看| 99操碰| 婷婷 亚洲图片 丁香| 久久久久人无码人妻| 狠狠狠狠狠狠| 97色操| www.99视频| 97综合在线| 一区二区三区四区无码| 99秘 在线| 婷婷六月成人| 欧美日韩99| 免费观看欧美成人AA片爱我多深| 操逼棍操逼| 久久44| 久草热在线视频| 爱操人妻| 人人干人人操外国| 色婷婷视频综合| 五月丁香| 婷婷久久五月| 久久久久久久久久91| 91啪啪视频| 婷婷夜夜操| 停停色综合伊人| 色欧美日| 五月天sesese| 亚洲1区| 思思热高清在线观看| 就去色色五月丁香婷婷久久久| 99色视频| 夜夜躁爽日日| 五月丁香啪啪综合| 26uuu亚洲精品国产| 99爱视频精品在线观看| 天天操夜夜夜拍拍拍| 色婷婷国产精品综合在线观看| 天天操夜夜操| 韩国中文字幕91| 99视频35精品视频在线观看| 色5月婷婷| 噜噜噜噜综合在线| 五月婷婷六月丁香激情| 丁香久久综合| 91热视频色网站| 五月激情综合深爱| 五月天丁香婷婷社区| 婷婷伊人网| 天天干-天天日| 五月丁香啪啪激情| 日本婷婷丁香五月| 99热99精品在线观看| 5月婷婷视频网站综合| 婷婷欧美偷拍综合| 婷婷丁香第一页| 快乐婷婷五月天| 99思思在线视频| 五月停亭六月,六月停亭的英语| 翔田千里 50岁 无码| www.97碰碰com| 99热精品网| 啪啪东京热| 九九婷婷五月天| 国产精产国品一二三在观看| 九九爱激情| 欧美五月婷婷综合| 国产超碰在线| 久久蜜臀婷婷| 禁片二区| 人人97碰| 天天综合影院| 丁香五月AV| 超碰人妻在线| 国产女生爱爱AA| 久久久久久久久久婷婷| 91九色国产在线| 欧美激情五月综合| 99热66| 夜丁香五月婷婷| 99热这里只有精品最新网址| 狠狠色成人影片| 婷婷丁香18| 激情九月综合| 免费操超碰| 中文字幕av在线| 五月婷婷五月丁香综合| 五月播播| 内射在线CHINESE| 韩国真做片在线观看| 99成人| av一级棒av| 五月丁香趴趴| 66精品成人免费网站在线观看| 99热精品观看| 五月天堂六月丁香亚州中文字幕久久| 婷婷在线操| 婷婷五月成人| 丁香花五月天婷婷成人社区| 99精品人人| 79成人网| 疯狂做受XXXX高潮A片动画| 91日本在线免费| 亚洲综合九九| 伊人玖玖精品| AV亚洲在线| 超碰九色| 日韩 中文 欧美| 五月天色小说| 色优久久| 日日杆天天| 无码激情AAAAA片-区区| 亚洲小说五月婷婷| 狠狠干,狠狠操| 婷婷五月丁香色播| 婷婷丁香18| 青青青在线视频国产| www.五月天婷婷| 亚洲av免费在线| 天天色综合图片| 狠狠综合网| 久久久精品AV| 日本高清综合网五月丁香| 久久久婷婷婷| 婷婷五月天色| 欧美日韩999| 狼人婷婷久久| 久久婷婷网站| 九月综合| 99婷婷| 日韩啪图| 天天综合网在线| 99国产99| 五月丁香六月色| 天天日日| 人人摸人人澡人人| 久久婷婷五月天| 综合久久综合久久| 伊人影音无码一区二区三区| 4438激情网| 97碰碰人人视频| 五月婷婷丁香色吧网| .精品久久久麻豆国产精品| 超碰色人妾| 综合色五月| 99re资源在线视频导航| 天天色视频| 五月色丁香婷婷综合| 婷婷五月深爱五月| 婷婷七月丁香色色| 日本天天色| 婷婷综合在线视频| 国产日比| 九九热这里只有精品12| 亚洲成人精品三区| 婷婷射丁香| 爱操人妻| 日本视频不卡123区| 丁香五月亚洲无码| 色青五月天| 五月婷婷综合在线| 丁香色六月婷婷| 八戒青柠影视剧在线观看| 亚洲天天免费| 婷婷色五月91啪啪| 一区二区免费看| 国产激情av| 色啪网| 久久丁香婷婷五月天| 五月丁香婷婷色| 丁香五月天婷婷中文| 国产精品成av人在线视午夜片| 无月播播激情在线观看视频| 婷婷五月激情网| 色色五月婷| 婷婷五月天人妻| 中文字幕在线观看视频www| 激情五月综亚网| 直接看的av| 婷婷九月激情网| 人橾人| 色九月综合| 精品人妻伦一二三区久久| 97九色视频| 超碰高清在线| 91天堂网综合| 五月天激情影院| 五月Huangsewang| 操草草草| 啪啪丁香五月| 精品无码99| 99亚洲视频| 婷婷激情人妻| 六月大香蕉| 婷婷五月伦理| 97碰碰久久| 亚洲、热| 一本九九色| 99热免费精品| 婷婷丁香亚洲色综合91| 六月丁香啪啪啪| 高清无码网址| 婷丁香五月天| 亚洲性爱AV在线| 99精品久久久久久久婷婷久久 | 欧韩性爱| 久久大香蕉丁香| 激情婷婷另类| 99小视频在线观看| 六月婷婷色综合| 国产婷婷色五月| 狠狠干思思热| av成人在线播放| 99热在线这里只有精品| 葵花AV在线| 天天舔天天摸| 色综合爱综合| 91chinese 在线| 免费不卡狠操美女视频网| www综合久久| 超碰在线人妻| 天天爽天天草| 2015好吊操| 色欲五月丁香| 九九热99热| 国产成人+综合亚洲+天堂| www.天天日| 久久五月天大美女| 五月丁香成年黄色| 免費亭亭成人| 99热免费| 激情综合婷婷| 激情综合啪啪啪| 69久久久| 99这里都是精品6| 天天在线久久综合 | 五月丁香激情综合六月涩涩爱| 激情伊人网| 大天天伊人| 九九综合色| 日韩成人网站精品久久大全| 五月丁香婷婷综合视频| 99精品22| 久久婷婷色| 久久五月婷| 91久久九| 亚洲久久婷婷| 99综合| 熟女激情网| 教师性爱毛片| 色婷婷综合综合网| 一根材五月婷成人| 狼友视频在线观看18| 玖玖婷婷色欲| 亚洲色五月婷婷| 开心五月深爱五月| 99啪啪骑| 婷婷丁香五月亚洲17cao| 激情综合网五月婷婷| 久久在线视频免费观看| 婷婷社区五月天| 日本英国美国欧美亚洲国产精亚洲日韩精品在线观看 | 五月天婷婷久草丁香| 99黄色性生活| 99无吗| 99热超碰| 99色视| 91一起操| m色激情网| 日本系列_4页_777FP| 九 九九九AV| 丁香六月婷婷综合麻豆| 日日做A爰片久久毛片A片英语| 九九色热| 色综合9| 亚洲V国产V欧美V久久久久久| www.99日本| 免费看欧美成人A片无码| 久久久这里有精品| 久久 视频这里只有精总| 丁香五月综合在线播放| Av狠狠色丁香婷| 五月丁香婷婷中文| 热99在线精品| www.夜夜操.com| 色八月婷婷| 色综合色色色色色色综合| www.成人婷婷综合| 日逼AV影音先锋男人资源站| 婷婷五月天亚洲综合网| 久久网址99热| 欧洲亚洲精品| 亚洲成人五月天| 能看的av| 婷婷久久影院| 91超碰人人操| 五月激情基地| 欧美va精品va老师va| 天天操夜夜操| 五月丁香六月婷婷玖玖| 一级性感黄色内射视频| 亚洲激情亚洲激情 | 久久婷婷五月丁香网| 综合AV在线| 狠狠色综合网| 超碰97色| 99成人| 久99热| 四月丁香五月婷婷久久| 操碰97| 天天揷综合网| 久久丁香五月| 五月婷亚洲精品AV天堂| 婷婷丁香综合| 亚洲日本激情| 婷婷久久网| 久久丁香五月婷婷激情综合网| 九九九激情综合| 99热色精品| 久热免费视频| 色综合天天| 婷婷性色| 激情综合网五月| 婷婷区日本| 天天更新天天亚洲| 天天综合在线网| 激情综合网,五月| 三级99热| 免费99色| 午夜一区| 色999五月色| 91碰在线| 免费AV在线| www.com久久久久久久久久久久久久久久久| 亚洲AV成人在线| 亚洲啪啪啪啪| 狠狠狠五月婷婷六月丁香| 婷婷成人在线| 婷婷五月丁香花综合| 男人先锋久久| 婷婷日本色| 色五月中文字幕| 日韩精品一区二区亚洲AV观看| 桃色五月婷婷| 真实熟女-91九色| 成人国产网| 偷偷操九九| 亚洲国产成人AV在线| 秋霞AV淫| 夜夜爽天天| 天天综合图片| 激情综合网激情五月天| 丁香五月婷婷色综合| www.金莲av| 婷婷色在线播放| www色色com| 久久成人性爱| 丁香五月区| 96人人操人人操人人| 色爱终和网| 色色a| www.色婷婷| 欧美69久成人做爰视频| 日韩成人中文字幕| 性爱五月婷| 人伦30P| 欧美噜噜免费观看| 久久人人九九| 激情六月婷婷| 90色免费视频| 激情五月,色五月| 婷婷基地五月色| 天天干天天爽| 欧美 日韩 成人在线| 激情狠狠丁香月| 五月色婷婷中文字幕| 无码日本精品XXXXXXXXX | 欧美大香蕉视频| 色色色综合色| 丁香五月婷婷色偷偷| 99热20| A久久| 色婷婷小说| www.九月婷婷丁香.com| 五月天影院| 狠狠综合网| 日日夜夜婷婷| 第四色在线观看| jiujiu热在线视频| 欧美三级欧美一级| 丁香五月婷婷激情尤物| 久久99三级在线视频| 婷婷六月激情啪啪| 少妇高潮呻吟A片免费看软件| 五月婷婷亚洲| 亚洲操逼片| 99er日韩| 九月激情婷婷丁香| 色色色综合色| 五月开心久久| 国产精品色婷婷久久久精品| 97在线视频观看| 丁香五月自拍| 99re8热精品免费视频| 国精产品一区二区三区| 99ER热精品视频| 天天添天天摸天天天天做| 天天揷综合网| 婷婷五月激情六月| 婷婷五月激情四月综合 | 琪琪色网在线| 超碰在线综合| 97色色色| 99热在线极品极品| 六月婷婷色综合| 天天摸日日舔狠狠添婷婷婷 | 婷婷激情性爱| 91色综合网站在线| 色噜噜婷婷| 丁香婷婷六月天| 五月婷婷婷婷婷婷艺术| 99热老司机| 五月综合激情啪啪啪啪啪| 色人妻五月| 狠狠色婷婷7777久| 91日本在线免费| 天天色粽合合合合合合合| 丁香婷在线| 五月丁香久久| 日韩AV在线免费观看| 婷婷五月深爱五月| 天天爱天天做综合| 欧美极品999| #NAME?| 欧美成人猛片AAAAAAA| 午夜成人网站在线观看| 色婷婷9| 99re在线这里只有精品视频首页| 综合激情在线视频| 天天日天天日天天搞| 性色播| 凹凸7777操操操| 亚洲无AV在线中文字幕| 丁香花五月天激情| 日本一级| 99久在线精品99re8| 婷婷六月色| 婷婷五月色播放| 九9九9无码| 日日鲁鲁鲁夜夜爽爽狠狠视频97| 久草热8精品视频在线观看| 午夜精品人妻无码一区二区三区| 嫩草AV久久伊人妇女超级A| 开心五月婷婷激情| 97人人射| 精品导航在线x不卡| 色婷婷五月影院| www五月天com| 热九九精品| 无码色色色色色| 色婷婷婷综合五月天| 99爱视频精品| 丁香五月色综合色播五月| 婷婷五月成人色综合| 色综合99无码| 一起肏在线视频| 久婷首页| 2020久久婷婷五月| 五月婷婷成人| 狠狠干综合| 桃色成人网| 日逼影音先锋AV男人资源站| 97久久精品| 久草久青福利| 日韩在线观看亚洲| 99网| www.91在线观看| 天堂爱爱| 色综合久| 五月99久久| 国外亚洲成AV人片在线观看| 五月婷婷九| 亚洲开心激情网| 丁香五月激情网| 久久丝袜婷婷| 狠狠操天天干| 99自拍视频网站| 五月天精品| 国产毛片操B| 婷婷九九色| 亚洲天堂热| 婷婷婷婷色| 香蕉曰比| 六月婷婷国产| 91操人| 日本熟妇精品99| 噜噜噜久久亚洲精品国产品91| www夜夜操| 婷婷五月综合色中文字幕| 亚洲十月婷婷综合| 丁香五月av| 思思视频这里是精品| 97极品在线| 天天射影院| 中文字幕在线视频播放| www.26uuu.com亚洲电影| 五月天激情久久| 欧美天堂久久| 亚洲综合视频在线| 丁香六月婷婷综情欧美| 影音先锋日本三级资源| 五月天成人在线播放丁香| 婷婷91| 久热这里只有精品性色AV| 99久久网站| 99精品在线播放| 无码任你操| 九九激情网| 91五月天| 五月婷婷激情综合| 亚洲精品无码一区二区| 婷婷精品综合| 色色色在线观看| www.超碰在线| 丁香五月六月欧美| 久久99久久99精品免视看婷婷| 99热精品在线在线| 激情99热| 伊人综合色干| 性欧美大战久久久久久久83| 丁香五月综合在线播放| 桃色激情五月天| 五月天伊人网| 久久99久久久久久久噜噜| 97狠狠色| 天天综合亚洲综合| 99大香蕉| 久久久亚洲精品一区二区三区浴池| 天天精品视频在线观看视频| 日本欧特黄色刺激一区影视久精品无码| 亚洲精品99| 丁香五月天堂网| 久久久精品人妻录| 丁香色婷婷| 99干免费视频| 国产肥白大熟妇BBBB视频| 亚洲AV中文在线| 狠狠色噜噜狠狠狠888了| 成人 在线 日韩| 国产精品激情AV久久久青桔| 婷婷爱五月天| 久久停停超碰| 五月天激情综合| 久久只这里有精品| 婷婷香香五月| 久久久久久久综合狠狠综合| OUMEIRIHANCHENGREN| 五月丁香网站| 丁香六月婷婷| 亚洲精品字幕在线观看| 色综合中文色综合网| 伊人五月综合网| 激情综合网址| 九热视频| 国产超碰在线| 一级二级色大片| 婷婷久久综合久色| 五月天天天色| 大香久久伊人网| www.色多多婷| 久久综合图片| 久热久操久热久草国产91| www.激情五月天.con| 色婷婷丁香AV综合| 另类视屏| 天天草天天舔| 996热re视频精品视频这里| 五月综亚洲| 视频免费精品免费精品免费精品免费精品免费精品免费精品免费99 | 五月婷婷六月色| 色婷婷成人| 超碰免费人| 欧美五月婷婷综合| 99九九视频| 亚洲午夜AV| 五月天婷婷色小说| 五月婷婷在线视频| www.夜夜操.com| 五月天亚洲最大成人| 亚洲激情丁香五月基地| 激情网五月| 99久久婷婷| 六月丁花香啪啪激情欧美| 久久女人九九| 九九热这里只有精品556| 天天爽,夜夜爽| 五月天婷婷色| 婷婷久久女人| 丁香婷婷偷拍| 婷婷激情综合| 五月天啪啪啪| 九九热精品| 99国产精品白浆在线观看免费| 国产成人AV在线播放| 婷婷瑟五月天久久综合| 99九九在线视频| 搡BBBB搡BBB搡18| 激情综合网五月丁香| 婷婷丁香六月激情综合| 亚洲激情综| www.99.色| 99在线视频免费| 天天做天天爱天天高潮| 伊人高清无码| 色婷婷丁香五月在线| 婷婷色网站| 在线伦子99热| 婷婷激情五月综合| 狠狠搞狠狠操| 婷婷伊人综合| 99国产小视频| 婷婷五月天VI| 亚洲这里只有精品| 久草免费福利视频| 一个色的综合| 亚洲日韩一页精品发布| 九九热思思热| 99精品久久久久久| 五月婷婷片| 久热9热| www激情| 一二区成人电影| 99热免费| 伊人超碰| 亚洲成人av中文| 99re热久久| 日韩在线视频9色| 久久这里只有精品视频1| 五月婷婷啪啪啪啪| 五月天激情无码| 久人操| 99热首页| 五月天色影院| 丁香花五月天| 99热这里有精品6| 99热这里只有精品96| 免费视频在线观看的网站| 五月激情天天干| 99精品人人| 久久久久er热| 久久丁香五月婷| WWW色综合| 久久只有精| 五月丁香激情综合| 色婷五月| 永久的网站AAAA| w婷婷五月婷婷w| 男男野外做爰全过程69| 色五月丁香五月天| 丁香婷婷啪啪啪| 色婷婷丁香社综合| 日本乱子人伦在线视频| 欧美日韩91| 午夜无码精品色综合久久| 丁香激情四射| 久久精典| 色五月情| 97视频.干com| 人人干人人看| 久久66成人网站| 欧美成人无码一区二区三区| 99热在线观看精品| 91/九色黑人| 香蕉久久国产AV一区二区| 91婷婷丁香五月| 成人五月天丁香婷| 91一起艹| 色综合激情| 丁香婷婷午夜| 欧美日韩一区二区三区四区| 精品一二三区久久AAA片| www久久久| 国产美女视频久| 麻豆五月丁香婷婷| 热久久视频99| 伊人色欲五月天| 我要射综合| 激情综合网,婷婷| 五月色无码| 色七色九九| 激情五月天激情综合网| 激情五月天婷婷| 五月丁香婷婷综合| 国产又色又爽又黄又免费| 风流少妇A片一区二区蜜桃| 亚洲乱码精品久久久久..| 婷婷欧美激情综合| 久九色| av人人干| 大香蕉久久青青| 人人草人| www婷婷| 日本三级韩三级99久久| 26UUU精品一区二区| 五月天精品视频| 丁香花社区av| 91色综合网| va中文资源在线观看| 欧美色色色色色色色| 激情六月天| 久草五月| 色99婷婷五月天| 888精品福利地址| 色丁香五月天婷婷| 久久激情视频| 超碰免费观看| 精品国产人人爱人人| www.久热| 天天综合天综合久久网| 99ri在线观看视频| 五月天另类小说| 五月婷婷色五月| 五月做爱| 极品 少妇 内射| 婷婷深爱五月丁香| 国产毛片精品一区二区色欲黄A片| 超碰啪啪网| 掩去也综合五月视频| 婷婷自拍| 色五月婷婷开心| 337p大胆噜噜噜噜噜91Av| 丁香婷婷综合色五月激情国产基地| 99久久婷婷| 丁香五月天.com| chaopeng在线人人| 亚洲六月婷| 99干日日干| 丁香六月色婷婷欧美| 99热主页日本| 超碰国产在线| 婷婷五月综合网| 狠狠色大香蕉| 4399人妻无码久久久| 综合精品啪啪| 99这里只有精品99| 精品视频网| 艹B高清无码| 婷婷激情综合色五月久久,色婷婷丁香花,丁香婷婷五月情天,久久婷婷五月综合色 | 五月婷婷国产| 五月天激情图片| 99资源在线| 这里只有精品久久| 9l视频自拍9l视频自拍九色学生| 丁香狠狠色婷婷| 伊人久久婷婷| 久久婷婷六月综合资源| 五月婷婷性爱网| 久久色亭亭五月天| 天天肏视频| 久久香蕉网| 激情婷婷综合| 七七色色综合| 五月色网| 久久久性爱视频| 五月色婷婷影院| 99视频精品在线| 欧美成人精品老美女噜噜噜| 婷婷五月激情五月丁香五月| 久久久人妻不卡| 黃色三级三级三级三级 qixing300.shrkbk.com www.jinbozs.com tianmiaosw.com | 久久这里只有精品久久| 色婷婷狠狠禁18久久| 四月婷婷五月丁香| 天堂婷婷五月在线| 99超碰人人| 综合色久| 激情爱爱网站超大免费| 激情五月天婷婷久久久久久久久久久 | 日本九九九九| 九色在线观看91av| 亚洲精品一区中文字幕乱码| 播五月丁香三月婷婷| 在线,国产,色,热视频| 欧美丁香五月| 五月天久草| 成人看片网站| 91色噜噜狠狠狠狠色综合| 这里只有精品在线播放| 26uuu青青| 伊人网碰碰| 久久全色| 久久婷婷五月天丁香| 激情五月天网| 国产成人网站在线观看| 99热精品无码| 狠狠干综合网| 激情图片五月天| 这里只有精彩亚洲视频推荐| 丁香六月天婷婷在线| 99热免费精品热久久66| 91爱操| 色综合香蕉| 888久久久| 天天色凹凸| 性爱激情五月| 色综合久久88| 密乳Va| 91美女被操| 久色视频| 激情五月综合网| 中文成人在线| 久久婷婷五月综合色丁香花| 四川BBB搡BBB搡多人乱亂| 天天射天天插天天干| 色婷婷导航| 可以免费观看的AV| 日本久久精品| 中字幕视频在线永久在线观看免费| 丁香婷婷色五月激情综合| 99热综合| 9色操| WWW色色色COm| 日本特黄aaaaa| 夜夜操,天天撸| 日本高清久| 丰满少妇乱A片无码| av不卡网站| 婷婷综合网性| 久久国产性爱A V| 99ri6在线视频| 超碰超碰在线| 情情五月天色| 五月天婷综合| 伊人爱爱日本| 99热新网址| 99热精品一区| 欧美在线视频99| av操B网站| 久久五月天激情美女| 五月婷婷激情五月| 99视频| 婷婷五月在线免费| 亚洲激情视频网| 激情第四色| 九九色网专区| 婷婷激情五月天网站| 色五月婷婷九月| 日日操夜夜操不卡| 狠狠色激情在线| 九九热99热| 九色七七| 9久国产| 成人综合AV| 99色免费观看全部| 啪啪色激情五月天| 久久久网站| 婷婷五月色色| 婷婷综合在线| 99久久.www| 无码任你操| 国产精品岛国片在线观看免费| 五月天播播综合| 超碰在线人人| 激情综合久久| 大香蕉久久久久| www.五月丁香| 夜夜躁婷婷AV| 久/久精品99看9| 人人操99| 五月色综合| 2015好吊操| 激情又色又爽又黄的A片| 综合婷婷六月| 午夜不卡久久精品无码免费| 91啪级电影| 丁香六月激情国产| 婷婷激情综合| 久久只有精| 国产这里只有精品| 五月丁香天堂网婷婷| 久久五月婷天天干| 91人操人人人操人| 国产精品久久99| 综合aV在线| 成人va视频| 99国产小视频2013| 96丁香婷婷九月蜜桃综合久久| www五月天com| 欧美日韩成人| 色九月综合| 成年人丁香五月| 男女99免费视频| 嫩模草| 97人人干| 青草青青草| 婷婷激情五月综合| www婷婷色| 久月婷婷| 26uuu欧美宗合| 一级片sese片.COM| 大香蕉在线观看9| 草草视频91| 五月婷天天搞视频| 视频免费精品免费精品免费精品免费精品免费精品免费精品免费99 | 丰滿爆乳一区二区三区| 丁香五月六月| 丁香六月婷| 日本激情五月天‘| 人人色人人摸人人看| 色色网91| 五月天婷婷色综合| 免费观看欧美成人AA片爱我多深| 亚洲精品99| 99热日| 丁香六月婷婷综合在线| 美妞av| 热久久成人| 色播五月婷婷| 五月天婷婷AV| 色五月丁香91| 日本性视频| ai97re99一本| 日本欧美999久久久三级片| 日韩综合成人| 久久AAAA片一区二区| 天天干天天干天天| 可以看的AV| av国产精品| 伊人久久婷婷五月综合97色| 五月婷婷久久大片| 五月婷婷综合天天操| 9色婷婷| 国产美女主播vip| 大香蕉 伊人夜| 色婷| 亚洲激情 久久| 五月丁香999| 天天成人丁香美女AV| 色婷婷在线视频综合| 国产精品久久久海的味道| 婷婷五月婷婷| 99ri精品| 精品久9| 婷婷涩涩五月天| 综合五月亭亭9| 深爱五月激情| 97人人射| 婷婷第一页| 婷香五月网在线| 激情5月天天天| 色五月色图| 熟妇人妻中文字幕无码老熟妇| 丁香影院五月综合| 日本久久天堂| 天堂草在线看www| 亚洲激情综合| 五月婷免费视频| 婷婷亚洲五月丁香综合在线| 色色国产| 国产69久久久欧美黑人A片| 超碰av天堂| 五月四色婷婷| AV性爱在线| 日韩精品VIP| 91超碰人人操| 色噜噜狠狠色综无码久久合欧美| 五月婷婷视频| 色综合久久五月| 色偷偷色婷婷| 五月婷婷七月丁香| 五月婷婷激清网| 婷婷五月成人| 噜噜噜狠狠色综| 五月婷婷说| 青吴乐视频| 亚洲乱码成人| 精品香蕉99久久久久网站 | 草草操操| 99九九热视频免费| 激情综合网,婷婷五月天| 久久99网| 五月丁香激情综合啪| 色999;丁香五月| 狠狠干在线| 海外网站专业操老外| 亚洲欧美999| 九草性爱| 人人操人人干AV| 久久婷婷激情四射五月天| 天天操天天操天天操天天操天天操天天操天天操天天操天天操 | 九九综合| 五月婷婷av| wuyuedingxiang99| 久久99美女精彩视频| www.99riav99| 欧美视频五区| 五月丁香久久| 色色色香蕉五月婷| 人妻久久久久久久 | 亚洲AV网站| 嫩草综合网| 亚洲在线成人| 超碰av在线| 26uu| 天天色99| 欧美经典片免费观看大全| 青草热视频这里只有精品| 九97免费视频| 91肏| 先锋男人99资源| 久久婷婷五月综合一| 国产激情综合五月久久| 婷婷五月天成人综合网| 丁香婷婷五月六月久久| 超碰在线50| 五月丁香婷婷中文| 激情五婷网| 激情五月天激情网| 激情婷婷。| 婷婷五月在线视频| 亚洲精品无码久久| 国产欧美日韩综合精品一区二区| 国产真实乱对白精彩| 中文av在线观看| 五月丁香婷婷在线综合蜜桃| wwW天天干| 人人干AV| 婷婷六月色开 | 嫩草AV久久伊人妇女超级A| 婷婷六月丁香色| 丁香五月AV| XXXX岛国| 精品成人无码A片观看香草视频| 亚洲99激情| 精品九九九久| 人妻视频在线| 五月丁香免费视频| 色婷婷成人做爰A片免费看网站| 亚州性爱99| 七七久久婷婷| 色丁香五月婷婷| 久久这里只有精品视频26| 婷婷五月激情综合啪啪| 97热精品| 久久婷婷色丁香| 日本天堂免费99| 欧美人妻一区二区| 狠狠久综合| 婷婷精品在线| 激情内射人妻1区2区3区| 五月丁香龟婷婷| 久久久WWW| 色99久草在线| 日本婷婷在线| 九玖欧洲亚洲| 日韩在线视频中文字幕| 成人在线观看精品| 五月婷视频| 色五月亚洲五月天| 久久99操| 天天免费成年人视频| 久久天堂婷婷五月| 少妇AB又爽又紧无码网站| 欧州色色| 婷婷五月 丁香六月| 日韩一级网站| 狠狠色婷婷| 婷婷五月激情图片| www.伊人天堂偷偷婷婷| 中美月韩免费A片| 日本精品人妻无码77777| 色色五月天丁香婷婷| 国产精品激情五月天色婷婷| 五月色丁香| 美女久久天堂| 九九热超碰| 婷婷香五月天| 五月激情婷婷播播网| aaa丁香五月天| 免费亚洲成人电影AV| 久久XX| 色五月丁香伊人| 婷婷第六色| 级人人91| 99操逼| 丁香五月网址| 五月丁香久久丝袜啪啪| 嫩草视频观看| 九九操屄| 久久色情| 久久激情天堂| 九一99| 五月婷婷 六月丁香| 色女人久久| 免费看欧美成人A片无码| 五月婷婷三级| 这里只有精品免费视频| 99在线观看视频免费| 久久五月激情| 大香av| 婷婷亚洲在线| 丁香情色五月| 亚洲激情AV| 五月天偷拍| 色综合综合色| 中文资源在线a| 色五月在线观看| 色五月在线视频观看| 六月丁香久久| 久9热在线视频| av在线免费播放| 九九色之九九色之88| 亚洲另类毛片| 99精彩视频在线观看| 天天肏天天舔AV| 熟妇内谢69XXXXXA片| 在线观看国产高清视频免费网站 | 久青操| 色婷婷综合亚洲| 久久99网| 成人在线视频一区| 色狠久| 激情综合一| 婷婷丁香五月亚洲免费| 青草激情综合| 丁香五月色欲| 五月丁香中文| 99国产精品久久久久久久久久久| 婷婷久久亚洲| 色婷婷六月天| 五月丁香六月婷婷激情网| www.婷婷,com| 免费视频无码| 91精品久久久久久77777| 婷婷九九| 99色热| 中文字幕成人| 日本不卡高字幕在线2019| 噢美99| 超碰成人在线免费观看| 婷婷五月,偷窥偷拍网| 丁香六月婷婷社区| 久久九九玖玖| 久久色情| 五月天激情Av| 99久久婷婷国产综合精品草原| 五月噜噜噜色综合| 插插五月天| 思思热久久久在线| 中文成人在线| 五月丁香婷婷色色色| 五月天伊人| 丁香五月激情网| 9色操| 九九热黄色| 五月天色播网| 九九视频这里只有精彩| 人人爽天天爽| 激情婷婷六月天| 最近中文字幕在线中文视频| 久久九九一區| 丁香五月婷婷啪啪| 同性gv国产精品一区二区| 婷婷噜噜| 在线观看亚洲视频影院| 99无码视频| 五月丁香久久激情综合| 99热爱爱干干日| 婷婷夜夜夜夜| 少妇激情五月天| 婷婷五月天网| 91丁香色| 色999五月色| 五月色 亚洲| 人妻aV在线| 思思re最新视频| 色噜噜五月丁香婷婷| 天天日综合网射| 播五月丁香六月| 这里只有精品2| 丁香五月婷婷老师网站| 国产.亚洲.欧洲视频在线| 色色色色色色色五月| 九九这里是免费的视频5| 亚洲美女婷婷五月天| 婷五月天| 综合五月天| 麻豆精品| 国产又黄又爽又激情不遮挡视频在线观看| 激情五月丁香六月综合AVXXXX| 丁香六月婷| 变态另类色图 | 九九热99精品| 开心五月激情| 丁香五月色网| 国产精品99久久久久久久女警| 久操干| 五月色婷婷综合丁香精品无遮挡| 大香蕉九操| 9色免费网| 五月丁香久久综合| 五月天激情婷婷| 双性美人被调教到喷水A片| 97人人看| 停婷丁五月在线| 久久精品99国产精品日本| 九热精品| 六月丁香社区| 国产黄大片在线观看画质优化| 人妻22p| 五月丁香六月情| 丁香六月丁香婷婷激情| 婷婷五月天综合网| 五月婷婷婷丁香播| 99热10在线高清播放| 国在线激情网| 久久新地址| 人人操人| 欧美激情综合色综合色| 搡BBBB搡BBB搡18| 91啪啪视频| 丁香五月婷婷啪啪啪| 91日韩美女被插视频| 99久久精品网| 欧类av怡春院| AV色五月婷婷| 亚洲操逼网| 99久久久免费| 婷婷99狠狠| 亚洲精品网址| 欧美va| 国产成人综合电影| 五月天婷婷青青| 泰州成人视频| 丁香五月天AV在线| 激情综合网五月激情| 欧美操逼天堂| 啪啪黄页网| 六月成人网| 色综合爽| 五月天色综合| 五月丁香综合啪啪啪啪啪| 亚洲a色| 中文字幕成人| 夜夜躁爽日日|