SoftwareUpdates>FindandInstall。選擇Searchfornewfea" />

亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

PyDev for Eclipse

系統(tǒng) 1553 0

PyDev for Eclipse

8/15/2010 2:36:26 PM

PyDev 安裝和配置

安裝 PyDev

在安裝 PyDev 之前,要保證您已經(jīng)安裝了 Java 1.4 或更高版本、Eclipse 以及 Python。接下來(lái),開(kāi)始安裝 PyDev 插件。

  1. 啟動(dòng) Eclipse,利用 Eclipse Update Manager 安裝 PyDev。在 Eclipse 菜單欄中找到 Help欄,選擇 Help > Software Updates > Find and Install。
  1. 選擇 Search for new features for install,然后單擊 Next。在顯示的窗口中,選擇 new remote site。此時(shí),會(huì)彈出一個(gè)對(duì)話框,要求輸入新的更新站點(diǎn)的名稱和鏈接。這里,名稱項(xiàng)輸入 PyDev,當(dāng)然,您也可以輸入其他的名稱;鏈接里輸入 http://www.fabioz.com/pydev/updates ,也可以填 http://pydev.sourceforge.net/updates 。然后,單擊 Ok。
  1. 這樣,一個(gè)新的 PyDev 的站點(diǎn)就建好了,選擇該站點(diǎn),然后 Finish。接下來(lái),Eclipse 的Update Manager 將會(huì)在剛才輸入的站點(diǎn)中搜索安裝包,選中搜索出的結(jié)果 PyDev,并單擊 Next。
  1. 閱讀許可證條款,如果接受,則可單擊 Next。進(jìn)入安裝路徑選擇界面,使用默認(rèn)設(shè)置,然后 Finish。
  1. Eclipse Update Manager 將下載 PyDev,您可以從 Eclipse 任務(wù)欄中看到下載的進(jìn)度。下載完后,顯示一個(gè)需要您確認(rèn)是否安裝的界面,單擊 Install All 便開(kāi)始安裝了。

安裝完后,需要重啟 Eclipse 使安裝生效。

驗(yàn)證是否成功安裝 PyDev

如何才能驗(yàn)證 Eclipse Update Manager 是否已經(jīng)成功安裝了所需的 PyDev 插件了呢?

選擇 Help->About Eclipse SDK->Plug-in Details,將會(huì)出現(xiàn) About Eclipse SDK Plug-ins 窗口,該窗口里列出了所有已經(jīng)安裝了的 Eclipse 插件。檢查一下在 Plug-in Id 一欄中是否至少有五個(gè)以上分別以 com.python.pydev 和 org.python.pydev 開(kāi)頭的插件。如果是,那么 PyDev已經(jīng)被成功安裝,否則,安裝出了一些問(wèn)題,需要根據(jù)具體問(wèn)題來(lái)做具體的分析。

配置 PyDev

安裝好 PyDev 之后,需要配置 Python/Jython 解釋器,配置過(guò)程很簡(jiǎn)單。

在 Eclipse 菜單欄中,選擇 Window > Preferences > Pydev > Interpreter - (Python/Jython),在這里配置 Python/Jython 解釋器,下面以 Python 為例介紹如何配置。

首先需要添加已安裝的解釋器。這里,Python 安裝在 C:/Python25 路徑下。單擊 New,選擇 Python 解釋器 python.exe,打開(kāi)后顯示出一個(gè)包含很多復(fù)選框的窗口,選擇需要加入系統(tǒng) PYTHONPATH 的路徑,單擊 Ok。

接下來(lái),檢查一下配置的結(jié)果是否正確。

在 System PYTHONPATH 里,檢查是否包含配置過(guò)程中加入的那些路徑。這里列出了所有的系統(tǒng)所需的庫(kù)文件夾。

另外,在 Forced builtin libs 里,列出了 Python 的內(nèi)置庫(kù)。對(duì)于 Python 而言,這樣的內(nèi)置庫(kù)大約有50個(gè),而對(duì)于 Jython 來(lái)說(shuō),則有30個(gè)左右。

這樣,Python 解釋器就配置好了。





創(chuàng)建項(xiàng)目

在開(kāi)展工作之前,需要?jiǎng)?chuàng)建一個(gè)新的項(xiàng)目。在 Eclipse 菜單欄中,選擇 File > New > Project > Pydev > Pydev Project,單擊 Next。

這時(shí),顯示出 Pydev Project 窗口,輸入項(xiàng)目名稱、選擇工作路徑、選擇 Python 解釋器的版本類型并選中復(fù)選框,然后單擊 Next,進(jìn)入關(guān)聯(lián)項(xiàng)目的窗口,如果不需要關(guān)聯(lián)其他項(xiàng)目,則可以直接單擊 Finish,完成項(xiàng)目的創(chuàng)建。

創(chuàng)建 Python 包和模塊

接下來(lái),在剛創(chuàng)建的項(xiàng)目中開(kāi)始創(chuàng)建 Python 包和模塊。

  1. 進(jìn)入 Pydev 透視圖,在 Python Package Explorer 中,右鍵單擊 src,選擇 New->Pydev Package,輸入 Package 名稱并單擊 Finish,Python 包就創(chuàng)建好了,此時(shí),自動(dòng)生成__init__.py 文件,該文件不包含任何內(nèi)容。

注意:如果在創(chuàng)建項(xiàng)目的時(shí)候沒(méi)有選中“Create default src folder and add it to the pythonpath”復(fù)選框,則需要通過(guò) File > New > Other > Source Folder 手動(dòng)創(chuàng)建一個(gè)源代碼文件夾。

  1. 創(chuàng)建完 Pydev Package 后,右鍵單擊創(chuàng)建的包,選擇 New->Pydev Module,輸入模塊名稱,單擊 Finish。這樣,Python 模塊就建成了。

編輯源程序

對(duì)于源程序的一些基本編輯方法,就不做介紹了。下面介紹幾點(diǎn) Pydev 提供的非常實(shí)用的編輯功能。

  1. 語(yǔ)法錯(cuò)誤提示

Python 開(kāi)發(fā)者在創(chuàng)建修改程序的過(guò)程中,如果能及時(shí)發(fā)現(xiàn)編輯過(guò)程中出現(xiàn)的語(yǔ)法錯(cuò)誤,無(wú)疑對(duì)整個(gè)項(xiàng)目開(kāi)發(fā)的質(zhì)量和進(jìn)展都是非常重要的。在 Python 透視圖中,Pydev Package Explorer 中列出了項(xiàng)目的源代碼,雙擊其中某一個(gè) Python 文件,如果該文件包含語(yǔ)法錯(cuò)誤,錯(cuò)誤會(huì)以很醒目的方式展現(xiàn)出來(lái)。

如果想把整個(gè)項(xiàng)目中所有包含語(yǔ)法錯(cuò)誤的文件顯示出來(lái),可以從 Python 透視圖自由切換到 Java 透視圖。在 Java Package 里,一個(gè)個(gè)醒目的小紅叉標(biāo)記了所有包含語(yǔ)法錯(cuò)誤的 Python文件。

  1. 源代碼編輯助手 (Content Assistents)

源代碼編輯助手 (Content Assistents,以下簡(jiǎn)稱 CA),顧名思義,即用于幫助開(kāi)發(fā)者編輯源程序,它提供了諸多方便實(shí)用的功能,引導(dǎo)開(kāi)發(fā)者進(jìn)行高效快速的項(xiàng)目開(kāi)發(fā)。

通過(guò)快捷鍵 Ctrl+1 可以激活 CA,它支持的功能如下:

PyDev

  1. Move import to global scope
  2. Create docstring
  3. Assign result to new local variable (or field)
  4. Assign parameters to attributes
  5. Surround code with try..except or try..finally

PyDev Extensions

  1. Make import for undefined token
  2. Ignore error
  3. Don't analyze module

在安裝 PyDev 時(shí),PyDev 和 PyDev Extensions 包都已安裝,所以 CA 的這幾大功能現(xiàn)在都支持。首先,先介紹如何使用 PyDev 包含的 CA 功能。

  • PyDev 的 CA 功能
  1. Move import to global scope

以如下代碼為例,將光標(biāo)移至 import sys 后,啟動(dòng)快捷鍵 Ctrl+1 激活 CA,”Move import to global scope” 出現(xiàn)在標(biāo)簽中,按 Enter 應(yīng)用此功能。如果不想應(yīng)用該功能,可以按 Esc 鍵取消。

                #!/usr/bin/python –u
sys.path.append(“./VirtualFS”)
import sys

              

應(yīng)用該功能后,import sys 被成功移至全局范圍內(nèi),消除了之前的錯(cuò)誤。改變后的代碼如下。

                #!/usr/bin/python –u
import sys
sys.path.append(“./VirtualFS”)

              

  1. Create docstring

Create docstring 功能可以自動(dòng)為函數(shù)添加參數(shù)注解。將光標(biāo)移至如下代碼行,啟動(dòng)快捷鍵Ctrl+1 激活 CA,標(biāo)簽欄中出現(xiàn) ”Make docstring”。

                def __init__(self, dbUser, dbPswd, dbHost):

              

按 Enter 應(yīng)用該功能后,自動(dòng)為該函數(shù)添加了參數(shù)注解。

                def __init__(self, dbUser, dbPswd, dbHost):
		
                
                  
                    
                      '''
                    
                  
                
                
		
		@param virtualOperator:
		@param database:
		@param hostname:
		@param workDir:
	'''

              

  1. Assign result to new local variable (or field)

CA 還提供一種功能能夠?qū)⒑瘮?shù)返回結(jié)果賦給新的內(nèi)部變量。以函數(shù) callMethod 為例,將光標(biāo)移至 a.callMethod() 行激活 CA。

                     def method (self, a):
	a.callMethod()

              

選擇 ”Assign to field(self, callMethod)” 或者 ”Assign to local(callMethod)”,可以將a.callMethod() 結(jié)果賦給新的內(nèi)部變量 self.callMethod,改變后的代碼如下。

                     def method (self, a):
	
                
                  
                    self.callMethod 
                  
                
                = a.callMethod()

              

  1. Assign parameters to attributes

在程序編輯過(guò)程中,如果需要把函數(shù)參數(shù)賦給變量,可以使用 CA 的 Assign parameters to attributes 功能自動(dòng)完成這樣的需求。將光標(biāo)移至函數(shù) m1 所在行,激活 CA。

                    class Foo(object):
	Def m1(self, a, b):

              

在標(biāo)簽欄中選擇 ”Assign parameters to attributes”,自動(dòng)生成兩行代碼將參數(shù) a,b 賦給同名變量。

                class Foo(object):
	def m1(self, a, b):
		
                
                  
                    self.a
                  
                
                 = a
		
                
                  
                    self.b 
                  
                
                = b

              

  1. Surround code with try..except or try..finally

對(duì)可能產(chǎn)生異常的代碼,要進(jìn)行異常捕獲,通常使用 try..except 或者 try..finally 語(yǔ)句來(lái)捕獲異常。選中一段代碼 print usage,激活 CA 的 ” Surround code with try..except or try..finally”功能,可以自動(dòng)對(duì) print usage 進(jìn)行異常捕獲。

                 import sys
def method (self, usage):
	  
                
                  
                    try:
                  
                
                
	      print usage
	  
                
                  
                    except:
                  
                
                
	      raise

              

下面,再介紹 PyDev Extensions 包含的 CA 功能是如何被運(yùn)用的。

  • PyDev Extension 的 CA 功能
  1. Make import for undefined token

以如下一段代碼為例,xmlreader 未定義,語(yǔ)法分析出錯(cuò)。

                     class Test:
	def method(self):
	     xmlreader

              

將鼠標(biāo)移至出錯(cuò)行,啟動(dòng)快捷鍵 Ctrl+1 激活 CA,選擇標(biāo)簽欄中的 ”Import xmlreader(xml.sax)”,自動(dòng)生成一行代碼 from xml.sax import xmlreader,語(yǔ)法錯(cuò)誤消除。

                from xml.sax import xmlreader
  class Test:
	def method(self):
	     xmlreader

              

  1. Ignore error

仍以上述代碼為例,由于 xmlreader 沒(méi)有被定義,包含語(yǔ)法錯(cuò)誤,在這一行激活 CA,選擇 ”UndefinedVariable”,語(yǔ)法錯(cuò)誤被忽略,xmlreader 后自動(dòng)生成一行注釋標(biāo)明 ”#@UndefinedVariable”。

                  class Test:
	def method(self):
	     xmlreader 
                
                  
                    #@UndefinedVariable
                  
                
              

  1. Don't analyze module

語(yǔ)法分析器可以幫助顯示包含語(yǔ)法錯(cuò)誤的代碼,但在程序編輯過(guò)程中,有時(shí)候需要刻意取消對(duì)程序的語(yǔ)法分析,CA 的 Don't analyze module 提供了這樣的功能。

將光標(biāo)移至程序第一行,激活 CA,選擇 ”@PydevCodeAnalysisIgnore”,自動(dòng)生成一行代碼 ”#@ PydevCodeAnalysisIgnore”,忽略對(duì)程序體的語(yǔ)法分析。

                #@PydevCodeAnalysisIgnore
   class Test:
	def method(self):
	     	     xmlreader

              

  1. Quick Outline

對(duì)特定的 Python 文件,Pydev Extensions 提供的 Quick Outline 能最簡(jiǎn)單快捷地獲取該文件的組織結(jié)構(gòu),并能在該文件中方便地查詢定位所需信息。

在 Pydev 透視圖中,選擇 Source -> Show Quick Outline,或者使用快捷鍵 Ctrl+O 啟動(dòng)該功能。

Python 文件的類、函數(shù)等組織架構(gòu)便以樹(shù)狀形式被形象地展現(xiàn)出來(lái)。同時(shí),F(xiàn)ilter 提供了查詢定位的功能,可以方便地查詢所需信息并定位到相應(yīng)的代碼段。

  1. Globals Browser

Globals Browser 是 Pydev Extensions 提供的另外一種強(qiáng)大的查詢定位功能。它可以查詢定位整個(gè)工程內(nèi)的一些定義和屬性,包括:

    • 類定義
    • 方法定義
    • 全局變量
    • 類以及實(shí)例屬性

通過(guò)三種方式可以啟動(dòng)該功能。

  • 在 Pydev 透視圖中,從菜單欄中選擇 Pydev -> Globals Browser。
  • 在Pydev 透視圖中,工具欄有如下的一個(gè)小圖標(biāo),鼠標(biāo)移至該圖標(biāo)上方,顯示 ”Pydev: Globals Browser” 標(biāo)注。點(diǎn)擊該圖標(biāo)按鈕,可以啟動(dòng) Globals Browser 功能。
  • 通過(guò)快捷鍵 Ctrl + Shift + T,可以快速啟動(dòng) Globals Browser 功能。

在 Filter 中輸入所要查詢的定義、變量或者屬性,Globals Browser 可以快速地定位到相應(yīng)的代碼段。

  1. Hierarchy View

當(dāng)某個(gè) python 文件包含多個(gè)類時(shí),如何才能簡(jiǎn)單直觀地了解各個(gè)類之間的依存關(guān)系?Hierarchy View 提供了這樣的功能,它能將多個(gè)類之間的層次關(guān)系以樹(shù)狀結(jié)構(gòu)直觀地顯示出來(lái)。

以一段 Python 代碼為例,定義了 Super1, Super2, ToAnalyze 和 Sub1 四個(gè)類。在 Pydev透視圖中,選擇 Windows -> Show View -> Other,在彈出的 Show View 窗口中,選擇 Pydev -> Hierarchy View。按快捷鍵 F4 激活 Hierarchy View,可以看到樹(shù)狀圖中顯示出了類間的層次關(guān)系。

Hierarchy View 還支持以下四個(gè)功能:

  • 在層次圖中,用鼠標(biāo)單擊某個(gè)類,圖下方即顯示出該類的方法。
  • 如果雙擊某個(gè)類、方法或者屬性,則會(huì)調(diào)出源程序,進(jìn)入對(duì)該類、方法或者屬性的編輯狀態(tài)。
  • 在 Hierarchy View 中,按住鼠標(biāo)右鍵,并相左或向右移動(dòng)鼠標(biāo),層次圖則會(huì)相應(yīng)地縮小或放大。
  • 在 Hierarchy View 中,按住鼠標(biāo)左鍵移動(dòng)鼠標(biāo),層次圖則會(huì)被隨意拖動(dòng)到相應(yīng)的位置。




運(yùn)行和調(diào)試

運(yùn)行程序

要運(yùn)行 Python 源程序,有兩種方法可供選擇。下面以一段代碼 example.py 為例介紹這兩種運(yùn)行方式。

  • 在 Pydev Package Explorer 中雙擊 example.py,選擇 Run -> Run As -> Python Run。程序example.py 立即被運(yùn)行,在控制臺(tái) Console 里顯示出程序的執(zhí)行結(jié)果。
  • 在 Pydev Package Explorer 中,用鼠標(biāo)右鍵單擊 example.py,在彈出的菜單欄中選擇 Run As -> Python Run。同樣,example.py 被執(zhí)行,Console 中顯示程序的執(zhí)行結(jié)果。

以上兩種方式是運(yùn)行源程序的基本方法。Pydev 還提供一種特有的源程序運(yùn)行功能 Run As Python Coverage,該功能不僅能顯示出程序的運(yùn)行結(jié)果,而且能將程序運(yùn)行過(guò)程中代碼的覆蓋率顯示出來(lái)。

要查看代碼的覆蓋率,首先需要打開(kāi) Code Coverage Results View。在 Pydev 透視圖中,選擇 Windows -> Show View -> Code Coverage Results View。在彈出視圖的左欄中,可以看到三個(gè)按鈕,”Choose dir!”, “Clear coverage information!” 和 ”Refresh Coverage infomation”。

用鼠標(biāo)左鍵單擊 ”Choose dir!”,在彈出的 Folder Selection 窗口中選擇需要運(yùn)行的程序所在的包,單擊 Ok。這樣,這個(gè)包中所有的源程序便顯示在左欄中。

接下來(lái),仍以 example.py 為例,看看 Run As Python Coverage 功能展現(xiàn)出的結(jié)果。選擇Run As -> Python Coverage,控制臺(tái) Console 中顯示出了程序的運(yùn)行結(jié)果。切換到剛才打開(kāi)的 Code Coverage Results View 視圖,單擊左欄中的 example.py。

代碼運(yùn)行過(guò)程中的覆蓋情況很清楚地顯示在右欄中。

雙擊左欄中的 example.py,沒(méi)有覆蓋到的代碼便在編輯器中以醒目的錯(cuò)誤標(biāo)志被標(biāo)注出來(lái)。

如果關(guān)閉 Code Coverage Results View 視圖,代碼的覆蓋信息并沒(méi)有丟失,重新打開(kāi)該視圖同樣可以顯示出這些信息。只有通過(guò)單擊左欄的 “Clear coverage information!” 按鈕,才可以清除程序運(yùn)行后得到的這些覆蓋信息。

調(diào)試程序

調(diào)試是程序開(kāi)發(fā)過(guò)程中必不可少的,熟練掌握調(diào)試技能是開(kāi)發(fā)者進(jìn)行高效開(kāi)發(fā)的前提和基礎(chǔ)。下面仍以 example.py 為例,介紹如何使用 Pydev 的調(diào)試功能。

調(diào)試需從添加斷點(diǎn)開(kāi)始,有三種方式可以設(shè)置斷點(diǎn)。

  • 雙擊編輯器中標(biāo)尺欄左邊灰白的空白欄,在某行添加斷點(diǎn)。
  • 鼠標(biāo)右鍵單擊標(biāo)尺欄,在彈出的菜單欄中選擇 ”Add Breakpoint” 添加斷點(diǎn)。
  • 將鼠標(biāo)移至需要添加斷點(diǎn)的代碼行,使用快捷鍵 Ctrl+F10,在彈出的菜單欄中選擇 ”Add Breakpoint” 添加斷點(diǎn)。

添加好斷點(diǎn)后,選擇 Debug As -> Python Run 啟動(dòng)調(diào)試器,彈出一個(gè)對(duì)話框,詢問(wèn)是否切換到調(diào)試器透視圖,單擊 Yes,即顯示調(diào)試模式。

程序調(diào)試過(guò)程中,常用的幾個(gè)快捷鍵如下:

  • 單步跳入 Step Into: F5
  • 單步跳過(guò) Step Over: F6
  • 單步返回 Step Return: F7
  • 重新開(kāi)始 Resume: F8

在控制臺(tái) Console 中,顯示出斷點(diǎn)之前代碼的執(zhí)行結(jié)果。如果要查看某個(gè)變量的值,以變量 a 為例,可以手動(dòng)在控制臺(tái)中鍵入一行代碼 ”print ‘a(chǎn) is:’, a”,再連續(xù)按兩次 Enter 鍵,即顯示出變量的值。

在調(diào)試模式下,要查看表達(dá)式的值,選中后單擊鼠標(biāo)右鍵,選擇 Watch。彈出 Expression面板,顯示出了相應(yīng)的變量或表達(dá)式的值。

如果想要在滿足一定條件下已經(jīng)添加的斷點(diǎn)才有效,可以設(shè)置斷點(diǎn)的屬性。在編輯器的標(biāo)尺欄中單擊鼠標(biāo)右鍵,彈出的菜單欄中選擇 Breakpoint Properties。在顯示的窗口中,選中復(fù)選框 ”Enable Condition”,輸入需要滿足的條件,單擊 Ok。

這樣,當(dāng)重新執(zhí)行程序調(diào)試的時(shí)候,只有滿足條件的情況下,該斷點(diǎn)才有效。





總結(jié)

Pydev 結(jié)合 Ecplise 實(shí)現(xiàn)了如此功能強(qiáng)大且易用的 Python IDE,本文不能一應(yīng)俱全地介紹出來(lái),對(duì)于一些基本的功能沒(méi)有做過(guò)于詳盡的介紹,主要突出 Pydev 特有的一些功能。Pydev for Eclipse 的出現(xiàn)為 Python 開(kāi)發(fā)人員實(shí)現(xiàn)高效的項(xiàng)目開(kāi)發(fā)提供了很好的條件,該項(xiàng)目也在不斷的發(fā)展之中,其功能將會(huì)越來(lái)越強(qiáng)大。

pytdev的下載網(wǎng)站為: http://pydev.org/download.html
l

Pydev使用 Psyco加速

關(guān)鍵字: pydev psyco 加速

http://psyco.sourceforge.net/

pydev速度很慢, 查詢后發(fā)現(xiàn)可以使用psyco加速, 雖然改變不是非常明顯, 但確有改變, 推薦一下.

我是Windows的系統(tǒng), 下載一個(gè)exe, 安裝一下即可.

安裝前:

pydev debugger: warning: psyco not available for debugger speedups

安裝后:

pydev debugger: starting

PyDev Package Explorer

PyDev for Eclipse


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 久久视频国产 | 国产欧美日韩综合精品一区二区 | 一级黄色免费网站 | 国产在线伊人 | 国内精品久久久久久久久久影视 | 九九99热久久精品在线9 | 国产99视频精品免费视频7 | 天天躁狠狠躁 | 日本aaaaa级毛片 | bbw满足护士| 久久思re热9一区二区三区 | 日韩香蕉网 | va亚洲va日韩不卡在线观看 | 久久免费精品 | 色网站综合| 97在线看 | 福利精品在线 | 黄色免费网站在线观看 | 牛牛a级毛片在线播放 | 久久青青草原精品国产麻豆 | 免费a级网站 | 国产精品免费久久久久影院小说 | 国产高清在线精品一区a | 成人网视频 | 久久亚洲国产成人亚 | 伊人伊狠亚洲综合影院 | 精品国产免费一区二区三区 | 久久66久这里精品99 | 亚洲精品国产第一区二区图片 | 在线观看亚洲成人 | 日本高清免费视频不卡a | 欧美成人免费网在线观看 | 久久99精品久久久久久水蜜桃 | 456性欧美欧美在线视频 | 69成人影院 | 国产成人精品久久一区二区小说 | 国产精品视频免费播放 | 日本一区毛片免费观看 | 色人阁网站 | 日韩精品一区二区三区在线观看l | 国产精品人人 |