日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

如何在C++中调用python程序?

發布時間:2025/3/19 python 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何在C++中调用python程序? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

      • 1. Embedding Python in Another Application 將Python嵌入另一個應用程序中
        • 1.1. Very High Level Embedding 高層嵌入
        • 1.2. Beyond Very High Level Embedding: An overview 超越高級嵌入:概述
        • 1.3. Pure Embedding 純嵌入
        • 1.4. Extending Embedded Python
        • 1.5. Embedding Python in C++ 在C ++中嵌入Python
        • 1.6. Compiling and Linking under Unix-like systems 編譯和在類Unix系統鏈接

1. Embedding Python in Another Application 將Python嵌入另一個應用程序中

The previous chapters discussed how to extend Python, that is, how to extend the functionality of Python by attaching a library of C functions to it. It is also possible to do it the other way around: enrich your C/C++ application by embedding Python in it. Embedding provides your application with the ability to implement some of the functionality of your application in Python rather than C or C++. This can be used for many purposes; one example would be to allow users to tailor the application to their needs by writing some scripts in Python. You can also use it yourself if some of the functionality can be written in Python more easily.

前面的章節討論了如何擴展Python,即如何通過將C函數庫附加到Python來擴展Python的功能。也可以通過其他方式做到這一點:通過將Python嵌入到C / C ++應用程序中來豐富它。嵌入為您的應用程序提供了使用Python而非C或C ++實現應用程序某些功能的能力。這可以用于許多目的。一個示例是允許用戶通過使用Python編寫一些腳本來根據自己的需求定制應用程序。如果某些功能可以更輕松地用Python編寫,那么您也可以自己使用它。

Embedding Python is similar to extending it, but not quite. The difference is that when you extend Python, the main program of the application is still the Python interpreter, while if you embed Python, the main program may have nothing to do with Python — instead, some parts of the application occasionally call the Python interpreter to run some Python code.

嵌入Python與擴展Python類似,但不完全相同。區別在于,當您擴展Python時,應用程序的主程序仍然是Python解釋器,而如果您嵌入Python,則主程序可能與Python無關—相反,應用程序的某些部分有時會調用Python解釋器運行一些Python代碼。

So if you are embedding Python, you are providing your own main program. One of the things this main program has to do is initialize the Python interpreter. At the very least, you have to call the function Py_Initialize(). There are optional calls to pass command line arguments to Python. Then later you can call the interpreter from any part of the application.

因此,如果您要嵌入Python,那么您將提供自己的主程序。這個主程序要做的一件事就是初始化Python解釋器。至少,您必須調用函數Py_Initialize()。有一些可選的調用,可將命令行參數傳遞給Python。然后,您可以從應用程序的任何部分調用解釋器。

There are several different ways to call the interpreter: you can pass a string containing Python statements to PyRun_SimpleString(), or you can pass a stdio file pointer and a file name (for identification in error messages only) to PyRun_SimpleFile(). You can also call the lower-level operations described in the previous chapters to construct and use Python objects.

有幾種不同的調用解釋器的方式:可以將包含Python語句的字符串傳遞給PyRun_SimpleString(),或者可以將stdio文件指針和文件名(僅用于錯誤消息中的標識)傳遞給PyRun_SimpleFile()。您還可以調用前面各章中描述的較低級別的操作來構造和使用Python對象。

參見
Python/C API 參考手冊
The details of Python’s C interface are given in this manual. A great deal of necessary information can be found here.

1.1. Very High Level Embedding 高層嵌入

The simplest form of embedding Python is the use of the very high level interface. This interface is intended to execute a Python script without needing to interact with the application directly. This can for example be used to perform some operation on a file.

嵌入Python的最簡單形式是使用非常高級的接口。該接口旨在執行Python腳本,而無需直接與應用程序進行交互。例如,這可用于對文件執行某些操作。

#define PY_SSIZE_T_CLEAN #include <Python.h>int main(int argc, char *argv[]) {wchar_t *program = Py_DecodeLocale(argv[0], NULL);if (program == NULL) {fprintf(stderr, "Fatal error: cannot decode argv[0]\n");exit(1);}Py_SetProgramName(program); /* optional but recommended */Py_Initialize();PyRun_SimpleString("from time import time,ctime\n""print('Today is', ctime(time()))\n");if (Py_FinalizeEx() < 0) {exit(120);}PyMem_RawFree(program);return 0; }

The Py_SetProgramName() function should be called before Py_Initialize() to inform the interpreter about paths to Python run-time libraries. Next, the Python interpreter is initialized with Py_Initialize(), followed by the execution of a hard-coded Python script that prints the date and time. Afterwards, the Py_FinalizeEx() call shuts the interpreter down, followed by the end of the program. In a real program, you may want to get the Python script from another source, perhaps a text-editor routine, a file, or a database. Getting the Python code from a file can better be done by using the PyRun_SimpleFile() function, which saves you the trouble of allocating memory space and loading the file contents.

Py_SetProgramName()在Py_Initialize()通知解釋器有關Python運行時庫的路徑之前,應先調用該函數 。接下來,使用初始化Python解釋器 Py_Initialize(),然后執行打印日期和時間的硬編碼Python腳本。之后,該Py_FinalizeEx()調用將關閉解釋器,然后結束程序。在實際程序中,您可能希望從其他來源(可能是文本編輯器例程,文件或數據庫)獲取Python腳本。使用該PyRun_SimpleFile()函數可以更好地從文件中獲取Python代碼,從而避免了分配內存空間和加載文件內容的麻煩。

1.2. Beyond Very High Level Embedding: An overview 超越高級嵌入:概述

The high level interface gives you the ability to execute arbitrary pieces of Python code from your application, but exchanging data values is quite cumbersome to say the least. If you want that, you should use lower level calls. At the cost of having to write more C code, you can achieve almost anything.

高級接口使您能夠從應用程序中執行任意段Python代碼,但是至少可以說,交換數據值非常麻煩。如果需要,應該使用較低級別的調用。以編寫更多的C代碼為代價,您幾乎可以實現任何目標。

It should be noted that extending Python and embedding Python is quite the same activity, despite the different intent. Most topics discussed in the previous chapters are still valid. To show this, consider what the extension code from Python to C really does:

應該注意的是,盡管意圖不同,但擴展Python和嵌入Python是完全相同的活動。前幾章討論的大多數主題仍然有效。為了說明這一點,請考慮一下從Python到C的擴展代碼的實際作用:

  • Convert data values from Python to C,
    將數據值從Python轉換為C,

  • Perform a function call to a C routine using the converted values, and
    使用轉換后的值對C例程執行函數調用,然后

  • Convert the data values from the call from C to Python.
    將調用中的數據值從C轉換為Python。

  • When embedding Python, the interface code does:
    嵌入Python時,接口代碼執行以下操作:

  • Convert data values from C to Python,
    將數據值從C轉換為Python,

  • Perform a function call to a Python interface routine using the converted values, and
    使用轉換后的值執行對Python接口例程的函數調用,以及

  • Convert the data values from the call from Python to C.
    將調用中的數據值從Python轉換為C。

  • As you can see, the data conversion steps are simply swapped to accommodate the different direction of the cross-language transfer. The only difference is the routine that you call between both data conversions. When extending, you call a C routine, when embedding, you call a Python routine.

    如您所見,只需轉換數據轉換步驟即可適應跨語言傳輸的不同方向。唯一的區別是兩次數據轉換之間調用的例程。擴展時,您調用C例程,嵌入時,您調用Python例程。

    This chapter will not discuss how to convert data from Python to C and vice versa. Also, proper use of references and dealing with errors is assumed to be understood. Since these aspects do not differ from extending the interpreter, you can refer to earlier chapters for the required information.

    1.3. Pure Embedding 純嵌入

    The first program aims to execute a function in a Python script. Like in the section about the very high level interface, the Python interpreter does not directly interact with the application (but that will change in the next section).

    第一個程序旨在在Python腳本中執行功能。就像在有關高級界面的部分中一樣,Python解釋器不會直接與應用程序進行交互(但是在下一部分中會有所變化)。

    The code to run a function defined in a Python script is:

    運行Python腳本中定義的函數的代碼為:

    #define PY_SSIZE_T_CLEAN #include <Python.h>int main(int argc, char *argv[]) {PyObject *pName, *pModule, *pFunc;PyObject *pArgs, *pValue;int i;if (argc < 3) {fprintf(stderr,"Usage: call pythonfile funcname [args]\n");return 1;}Py_Initialize();pName = PyUnicode_DecodeFSDefault(argv[1]);/* Error checking of pName left out */pModule = PyImport_Import(pName);Py_DECREF(pName);if (pModule != NULL) {pFunc = PyObject_GetAttrString(pModule, argv[2]);/* pFunc is a new reference */if (pFunc && PyCallable_Check(pFunc)) {pArgs = PyTuple_New(argc - 3);for (i = 0; i < argc - 3; ++i) {pValue = PyLong_FromLong(atoi(argv[i + 3]));if (!pValue) {Py_DECREF(pArgs);Py_DECREF(pModule);fprintf(stderr, "Cannot convert argument\n");return 1;}/* pValue reference stolen here: */PyTuple_SetItem(pArgs, i, pValue);}pValue = PyObject_CallObject(pFunc, pArgs);Py_DECREF(pArgs);if (pValue != NULL) {printf("Result of call: %ld\n", PyLong_AsLong(pValue));Py_DECREF(pValue);}else {Py_DECREF(pFunc);Py_DECREF(pModule);PyErr_Print();fprintf(stderr,"Call failed\n");return 1;}}else {if (PyErr_Occurred())PyErr_Print();fprintf(stderr, "Cannot find function \"%s\"\n", argv[2]);}Py_XDECREF(pFunc);Py_DECREF(pModule);}else {PyErr_Print();fprintf(stderr, "Failed to load \"%s\"\n", argv[1]);return 1;}if (Py_FinalizeEx() < 0) {return 120;}return 0; }

    This code loads a Python script using argv[1], and calls the function named in argv[2]. Its integer arguments are the other values of the argv array. If you compile and link this program (let’s call the finished executable call), and use it to execute a Python script, such as:

    此代碼使用加載Python腳本argv[1],并調用中命名的函數argv[2]。它的整數參數是argv 數組的其他值。如果編譯并鏈接該程序(讓我們調用完成的可執行調用),并使用它執行Python腳本,例如:

    def multiply(a,b):print("Will compute", a, "times", b)c = 0for i in range(0, a):c = c + breturn c

    then the result should be:

    那么結果應該是:

    $ call multiply multiply 3 2 Will compute 3 times 2 Result of call: 6

    Although the program is quite large for its functionality, most of the code is for data conversion between Python and C, and for error reporting. The interesting part with respect to embedding Python starts with

    盡管該程序的功能非常龐大,但大多數代碼都是用于Python和C之間的數據轉換以及錯誤報告。關于嵌入Python的有趣部分始于

    Py_Initialize(); pName = PyUnicode_DecodeFSDefault(argv[1]); /* Error checking of pName left out */ pModule = PyImport_Import(pName);

    After initializing the interpreter, the script is loaded using PyImport_Import(). This routine needs a Python string as its argument, which is constructed using the PyUnicode_FromString() data conversion routine.

    初始化解釋器后,使用加載腳本 PyImport_Import()。該例程需要一個Python字符串作為其參數,該字符串是使用PyUnicode_FromString()數據轉換例程構造的。

    pFunc = PyObject_GetAttrString(pModule, argv[2]); /* pFunc is a new reference */if (pFunc && PyCallable_Check(pFunc)) {... } Py_XDECREF(pFunc);

    Once the script is loaded, the name we’re looking for is retrieved using PyObject_GetAttrString(). If the name exists, and the object returned is callable, you can safely assume that it is a function. The program then proceeds by constructing a tuple of arguments as normal. The call to the Python function is then made with:

    加載腳本后,將使用查找所需的名稱 PyObject_GetAttrString()。如果名稱存在,并且返回的對象是可調用的,則可以安全地假定它是一個函數。然后,程序通過正常構造參數元組繼續進行。然后使用以下命令調用Python函數:

    pValue = PyObject_CallObject(pFunc, pArgs);

    Upon return of the function, pValue is either NULL or it contains a reference to the return value of the function. Be sure to release the reference after examining the value.

    函數返回時,pValue是NULL或包含對函數返回值的引用。檢查值之后,請確保釋放參考。

    1.4. Extending Embedded Python

    Until now, the embedded Python interpreter had no access to functionality from the application itself. The Python API allows this by extending the embedded interpreter. That is, the embedded interpreter gets extended with routines provided by the application. While it sounds complex, it is not so bad. Simply forget for a while that the application starts the Python interpreter. Instead, consider the application to be a set of subroutines, and write some glue code that gives Python access to those routines, just like you would write a normal Python extension. For example:

    到目前為止,嵌入式Python解釋器無法從應用程序本身訪問功能。Python API通過擴展嵌入式解釋器來實現這一點。也就是說,嵌入式解釋器將使用應用程序提供的例程進行擴展。雖然聽起來很復雜,但還不錯。只需暫時忘記應用程序啟動Python解釋器。相反,應將應用程序視為一組子例程,并編寫一些粘合代碼以使Python可以訪問這些例程,就像編寫普通的Python擴展一樣。例如:

    static int numargs=0;/* Return the number of arguments of the application command line */ static PyObject* emb_numargs(PyObject *self, PyObject *args) {if(!PyArg_ParseTuple(args, ":numargs"))return NULL;return PyLong_FromLong(numargs); }static PyMethodDef EmbMethods[] = {{"numargs", emb_numargs, METH_VARARGS,"Return the number of arguments received by the process."},{NULL, NULL, 0, NULL} };static PyModuleDef EmbModule = {PyModuleDef_HEAD_INIT, "emb", NULL, -1, EmbMethods,NULL, NULL, NULL, NULL };static PyObject* PyInit_emb(void) {return PyModule_Create(&EmbModule); }

    Insert the above code just above the main() function. Also, insert the following two statements before the call to Py_Initialize():

    在main()函數上方插入上面的代碼。另外,在對的調用之前插入以下兩個語句Py_Initialize():

    numargs = argc; PyImport_AppendInittab("emb", &PyInit_emb);

    These two lines initialize the numargs variable, and make the emb.numargs() function accessible to the embedded Python interpreter. With these extensions, the Python script can do things like

    這兩行初始化numargs變量,并使該 emb.numargs()函數可被嵌入式Python解釋器訪問。通過這些擴展,Python腳本可以執行以下操作

    import emb print("Number of arguments", emb.numargs())

    In a real application, the methods will expose an API of the application to Python.

    在實際的應用程序中,這些方法會將應用程序的API公開給Python。

    1.5. Embedding Python in C++ 在C ++中嵌入Python

    It is also possible to embed Python in a C++ program; precisely how this is done will depend on the details of the C++ system used; in general you will need to write the main program in C++, and use the C++ compiler to compile and link your program. There is no need to recompile Python itself using C++.

    也可以將Python嵌入C ++程序中。確切地講,這將取決于所使用的C ++系統的細節。通常,您將需要用C ++編寫主程序,并使用C ++編譯器來編譯和鏈接程序。無需使用C ++重新編譯Python本身。

    1.6. Compiling and Linking under Unix-like systems 編譯和在類Unix系統鏈接

    It is not necessarily trivial to find the right flags to pass to your compiler (and linker) in order to embed the Python interpreter into your application, particularly because Python needs to load library modules implemented as C dynamic extensions (.so files) linked against it.

    找到正確的標志傳遞給編譯器(和鏈接器)以將Python解釋器嵌入到您的應用程序中并不一定很簡單,尤其是因為Python需要加載實現為.so與其鏈接的C動態擴展(文件)的庫模塊。

    To find out the required compiler and linker flags, you can execute the pythonX.Y-config script which is generated as part of the installation process (a python3-config script may also be available). This script has several options, of which the following will be directly useful to you:

    要找出所需的編譯器和鏈接器標志,您可以執行 在安裝過程中生成的腳本(也可以使用腳本)。該腳本有多個選項,其中的以下選項對您直接有用:pythonX.Y-configpython3-config

    • pythonX.Y-config --cflags will give you the recommended flags when compiling:
      pythonX.Y-config --cflags 編譯時會給您推薦的標志:
    $ /opt/bin/python3.4-config --cflags -I/opt/include/python3.4m -I/opt/include/python3.4m -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes
    • pythonX.Y-config --ldflags will give you the recommended flags when linking:
      pythonX.Y-config --ldflags 鏈接時會為您提供推薦的標志:
    $ /opt/bin/python3.4-config --ldflags -L/opt/lib/python3.4/config-3.4m -lpthread -ldl -lutil -lm -lpython3.4m -Xlinker -export-dynamic

    注解 To avoid confusion between several Python installations (and especially between the system Python and your own compiled Python), it is recommended that you use the absolute path to pythonX.Y-config, as in the above example.

    注解 為了避免一些Python的設備之間的混淆(尤其是系統Python和自己編譯的Python之間),因此建議您使用絕對路徑,如上面的例子。pythonX.Y-config

    If this procedure doesn’t work for you (it is not guaranteed to work for all Unix-like platforms; however, we welcome bug reports) you will have to read your system’s documentation about dynamic linking and/or examine Python’s Makefile (use sysconfig.get_makefile_filename() to find its location) and compilation options. In this case, the sysconfig module is a useful tool to programmatically extract the configuration values that you will want to combine together. For example:

    如果此程序對您不起作用(不能保證在所有類Unix平臺上都有效;但是,我們歡迎提供錯誤報告),則您必須閱讀系統文檔中有關動態鏈接和/或檢查Python的文檔Makefile(用于sysconfig.get_makefile_filename() 查找其位置)和編譯選項。在這種情況下,該sysconfig模塊是有用的工具,可用于以編程方式提取要組合在一起的配置值。例如:

    >>> import sysconfig >>> sysconfig.get_config_var('LIBS') '-lpthread -ldl -lutil' >>> sysconfig.get_config_var('LINKFORSHARED') '-Xlinker -export-dynamic'

    參考文章:Embedding Python in Another Application

    總結

    以上是生活随笔為你收集整理的如何在C++中调用python程序?的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    中文字幕亚洲综合久久五月天色无吗'' | 精品一二三四视频 | 999国产在线 | 久久综合久久综合九色 | 亚洲va男人天堂 | 五月天激情电影 | 国内精品久久影院 | 欧美 国产 视频 | 国产专区一| 99免费在线视频观看 | 最近免费观看的电影完整版 | 很黄很色很污的网站 | 超碰97中文| 美腿丝袜av | 国产一区二区高清不卡 | 最新日本中文字幕 | 色av婷婷| 精品一区久久 | 国产成人精品福利 | 成人黄色视 | 又长又大又黑又粗欧美 | 久久久这里有精品 | av电影在线免费 | 久久久福利视频 | 久久国产精品久久国产精品 | 狠狠色丁香久久婷婷综合丁香 | 日韩无在线 | 欧美日韩性 | 在线观看视频国产一区 | 日韩资源在线观看 | 在线观看成人福利 | 国产精品免费观看网站 | 看片黄网站| 日韩欧美电影在线 | 国产不卡免费 | 激情网站网址 | 国产一二三区av | 午夜视频免费在线观看 | 91大神一区二区三区 | 成人国产精品电影 | 久久官网 | 国产精品高清一区二区三区 | 在线观看欧美成人 | 亚洲一级片在线看 | 99精品视频在线观看免费 | 丝袜美腿在线视频 | 久久毛片视频 | 免费看v片 | 精品国产免费一区二区三区五区 | 国产人成一区二区三区影院 | 96香蕉视频 | 日本女人的性生活视频 | 日韩av免费观看网站 | 99re国产| 亚洲五月婷婷 | 中文久草 | 免费亚洲黄色 | 国产免费av一区二区三区 | 成人免费在线观看入口 | 国产精品99久久久久久久久久久久 | 在线观看黄色小视频 | 国产日韩精品一区二区在线观看播放 | 狠狠激情中文字幕 | 91av视频网 | 9幺看片 | 激情网五月婷婷 | 密桃av在线 | 久久艹欧美 | 天天爱av导航 | 91探花国产综合在线精品 | 婷婷黄色片 | 免费亚洲成人 | av大全在线| 一区二区免费不卡在线 | 丁香婷婷激情啪啪 | 一区三区视频 | 五月婷婷丁香激情 | 天堂av影院 | 亚洲欧洲国产日韩精品 | 免费观看mv大片高清 | 久久国产一二区 | 久青草视频在线观看 | 日日夜夜婷婷 | 日韩av在线资源 | 人人爽人人舔 | 天天操夜夜操夜夜操 | 中文字幕av日韩 | www.色婷婷| 久久精品中文字幕少妇 | 亚洲激情校园春色 | 中文字幕电影在线 | 欧美午夜剧场 | 免费成人在线观看视频 | 免费黄色av片 | 亚洲精品理论 | 九九免费观看视频 | 人人超碰人人 | 国产亚洲字幕 | 狠狠色狠狠色综合日日92 | 热久久免费国产视频 | 国产特级毛片aaaaaaa高清 | 亚洲国产精品影院 | 亚洲精品国偷自产在线91正片 | 四季av综合网站 | 黄色一级影院 | 久久久久亚洲国产 | 久久综合桃花 | 国产一区二区观看 | 九九天堂 | 91久久精品日日躁夜夜躁国产 | 日韩精品久久久 | av三区在线 | 久久99精品久久久久久 | 91在线观看高清 | 91亚洲国产 | 精品亚洲va在线va天堂资源站 | 香蕉视频在线免费 | 欧美一级片播放 | 久久亚洲精品国产亚洲老地址 | av一级一片| 国产成人福利片 | 日韩中文字幕免费在线播放 | 国产精品美女 | 夜夜躁日日躁狠狠躁 | 天天摸日日操 | 久久久久免费精品视频 | 婷婷视频在线 | 色婷婷狠狠干 | 正在播放五月婷婷狠狠干 | 在线看黄色的网站 | 四虎www. | 欧美另类tv | zzijzzij亚洲成熟少妇 | 久久五月婷婷丁香社区 | 亚洲精品xxxx| 国产色久 | 亚洲国产精品一区二区尤物区 | 手机看片久久 | 久久av一区二区三区亚洲 | 久99久精品| 99在线精品免费视频九九视 | 欧美一区二区在线免费看 | 精品亚洲网 | 日本h视频在线观看 | 在线观看国产区 | 日韩欧美精品在线视频 | 黄色毛片在线看 | 国产资源网 | 亚洲永久字幕 | 日韩av不卡在线播放 | 97网站| 又黄又刺激的视频 | 国内精品在线观看视频 | 免费观看性生活大片3 | 亚洲欧洲精品视频 | 久久久久久久久电影 | 国产精品正在播放 | 三级小视频在线观看 | 免费色视频在线 | 国产精品久久久网站 | 久久久久亚洲精品成人网小说 | 日韩高清三区 | 久久草网站| 黄色三级在线 | 不卡的av在线 | 午夜视频导航 | 国产在线超碰 | 韩国av电影在线观看 | 亚洲激情婷婷 | 青青河边草免费观看 | 免费大片黄在线 | 国产精品v欧美精品v日韩 | 337p欧美 | 18国产精品白浆在线观看免费 | se视频网址| 久久视频国产 | 亚洲精品一区二区三区四区高清 | 久久久久国产免费免费 | 国产视频一二区 | 国产大陆亚洲精品国产 | 久久精品a| 国产污视频在线观看 | 久久高清国产 | 亚洲成人av免费 | 操老逼免费视频 | 91福利免费 | 高清免费av在线 | 亚洲综合在 | 另类五月激情 | 久久激情小视频 | 日韩一区二区三区免费视频 | 在线观看国产 | 国色天香在线观看 | 看片在线亚洲 | 最近中文字幕mv | 91久久人澡人人添人人爽欧美 | av色影院 | 国产91大片 | av日韩不卡 | 亚洲天堂网视频在线观看 | 国产免费黄色 | 久久久免费精品视频 | 中文免费观看 | 久久久久电影 | 国产一区二区在线影院 | 国产成人免费在线 | 欧美日韩视频一区二区 | 亚洲 欧美 综合 在线 精品 | 亚洲精品免费在线观看视频 | 97在线观看免费 | 亚洲精品伦理在线 | av电影不卡在线 | 天天av在线播放 | 一区二区三区四区五区六区 | 在线黄色免费av | 在线黄色观看 | 日韩毛片在线一区二区毛片 | 超碰97在线资源站 | 亚洲欧洲国产精品 | 国产最新91 | 91看成人 | 在线观看免费高清视频大全追剧 | 一区二区三区四区五区六区 | 欧美一级特黄aaaaaa大片在线观看 | www免费黄色 | 亚洲成a人片77777kkkk1在线观看 | 精品主播网红福利资源观看 | 欧美日韩三级在线观看 | 在线观看日韩视频 | 国产黄色片免费在线观看 | 亚洲欧美国内爽妇网 | 91免费视频网站在线观看 | 激情xxxx| 在线最新av | 9999激情 | av黄色大片 | 久久免费视频一区 | 九七在线视频 | 亚洲国产资源 | 日日干夜夜操视频 | 欧美午夜久久 | 波多野结衣在线播放一区 | 亚洲精品自拍视频在线观看 | 午夜精品久久久久久久爽 | 久久久国产在线视频 | 亚洲一区二区三区在线看 | 超碰97在线人人 | 91人人人| 右手影院亚洲欧美 | 最近免费中文字幕mv在线视频3 | 激情小说网站亚洲综合网 | av资源在线看 | 97网| 天天干天天做天天爱 | 久久精彩免费视频 | 久久久国产精品成人免费 | 成人久久影院 | 欧美日韩精品影院 | 夜夜摸夜夜爽 | 欧亚久久 | 国产专区精品视频 | 国产区免费在线 | 91福利在线观看 | 国产九色在线播放九色 | 国产精品黄色影片导航在线观看 | www.看片网站 | av成人在线网站 | 97看片吧 | 免费99精品国产自在在线 | 97热久久免费频精品99 | 国产视频在线播放 | 亚洲首页 | 日韩v欧美v日本v亚洲v国产v | 91在线精品一区二区 | 日本精品免费看 | 九九免费在线观看 | 日韩av电影免费在线观看 | 国产小视频你懂的在线 | 美女黄久久 | 亚洲永久国产精品 | 99久久www| 中文字幕一区三区 | 91亚洲夫妻| 亚洲欧美激情精品一区二区 | 99爱这里只有精品 | 久久久久久视频 | 日韩欧美国产精品 | 国产精选在线 | 国产女人40精品一区毛片视频 | 制服丝袜成人在线 | 中文字幕亚洲综合久久五月天色无吗'' | 亚洲视频播放 | 亚洲高清视频一区二区三区 | 久久黄色a级片 | 91试看| 国产精品每日更新 | 久久久久久高潮国产精品视 | 麻豆视频在线看 | 国产精品一区在线观看 | 超碰在线最新地址 | 亚洲精品视频观看 | 草久久久久 | 五月婷婷av | 亚洲精品www久久久 www国产精品com | 91成年人网站 | 最新久久免费视频 | 美女久久久久久久 | 人人爽久久涩噜噜噜网站 | 国产亚洲精品久久网站 | 男女啪啪网站 | 成人久久免费视频 | 综合网天天 | 免费福利在线播放 | 日韩在线资源 | 久久亚洲免费视频 | 99久久99久久精品 | 亚洲精品福利在线观看 | 欧美a在线免费观看 | 免费日韩 精品中文字幕视频在线 | 日韩在线观看免费 | 国产精品一区久久久久 | 最近中文字幕大全中文字幕免费 | 干干夜夜| 一区二区三区四区免费视频 | 特黄色大片 | 高清日韩一区二区 | 国产特级毛片aaaaaa高清 | 区一区二区三区中文字幕 | 亚洲成人高清在线 | 中国一区二区视频 | 在线观看理论 | 中文字幕第一页在线视频 | 国产精品久久久久影院 | 韩国精品福利一区二区三区 | 色综合久久久 | 久久视频在线免费观看 | 天天弄天天操 | 99精品国产福利在线观看免费 | 中文字幕一二 | 国产在线播放一区二区 | 久久国产午夜精品理论片最新版本 | 国产视频99| 国产精品久久久久久久久久尿 | 成人一级片视频 | 黄色在线看网站 | 国产成人无码AⅤ片在线观 日韩av不卡在线 | 69视频永久免费观看 | 九九九热精品免费视频观看网站 | 在线观看亚洲国产 | 国产二区视频在线 | 久久五月婷婷丁香社区 | 波多野结衣电影久久 | 色综合天天狠天天透天天伊人 | 亚洲一级性 | 亚洲精品电影在线 | 最新日韩视频 | 色av网站 | 久久久久久毛片精品免费不卡 | 亚洲综合网站在线观看 | 午夜影视av | 91热视频在线观看 | 高清av影院| 天天av在线播放 | 日韩三级在线观看 | 一区二区三区在线免费播放 | 91麻豆精品一区二区三区 | 欧美日韩性生活 | 最近高清中文字幕在线国语5 | 91传媒免费在线观看 | 在线观看视频黄色 | 99精品一区二区 | 2024国产精品视频 | 亚洲欧洲一区二区在线观看 | 国产精品久久久久影院 | 最新色站 | 国产色视频| 久久久久亚洲国产 | 97精品欧美91久久久久久 | 久久久综合电影 | 国产福利专区 | 精品国产精品久久一区免费式 | 国产午夜精品av一区二区 | 精品国产一区二区三区四 | 日韩久久精品一区二区三区下载 | 国产免费又粗又猛又爽 | 国产成人精品免费在线观看 | 午夜999| av色网站 | 91九色丨porny丨丰满6 | 久久成人资源 | 色欧美综合 | 在线观看免费高清视频大全追剧 | 一级片免费观看视频 | 亚洲清纯国产 | 在线观看www视频 | 久久老司机精品视频 | 婷婷成人亚洲综合国产xv88 | 黄色小说免费在线观看 | 国产精选在线 | 97精品国产97久久久久久粉红 | 国产在线高清 | 日韩精品亚洲专区在线观看 | 五月天婷婷丁香花 | 超碰在线人人97 | 国产成人精品久久二区二区 | 九九影视理伦片 | 久久久久五月天 | 日韩综合视频在线观看 | 久久国产精品一国产精品 | 午夜av免费观看 | 色综合中文综合网 | 最新中文字幕在线资源 | 麻豆视频在线免费 | 婷婷播播网 | 国产精品视频 | 欧美极品少妇xxxx | 九九久久免费 | 性日韩欧美在线视频 | 免费一级日韩欧美性大片 | 久久久精品福利视频 | 天天做天天爱天天爽综合网 | 成人小视频在线免费观看 | 在线观看黄网站 | av黄色av| 中文字幕人成人 | 日韩视频在线观看免费 | 精品久久久久久亚洲综合网站 | 日韩在线高清 | 黄色一级大片免费看 | 99高清视频有精品视频 | 毛片黄色一级 | 日韩二三区 | 视频二区在线 | 国产精品手机在线 | 欧美激情片在线观看 | 欧美一区三区四区 | 99欧美精品 | 久久综合99 | 五月婷婷另类国产 | 国产精品久久久一区二区 | 免费在线激情电影 | 91精品国产自产在线观看永久 | 四虎影院在线观看av | 在线免费91| 精品国产伦一区二区三区观看说明 | 超碰成人免费电影 | 成人免费在线观看入口 | 亚洲精品在线免费看 | 亚洲涩涩涩涩涩涩 | 久久伊99综合婷婷久久伊 | 99久久久国产精品免费99 | 可以免费观看的av片 | 91热爆视频| 日韩精品电影在线播放 | 国产精品3| 成人小视频在线播放 | 婷婷在线播放 | 亚洲视频在线观看 | 97在线看片| 日韩,精品电影 | 国产伦精品一区二区三区照片91 | 色吊丝在线永久观看最新版本 | 亚洲国产三级在线 | 天天操天天操天天操天天操 | 欧美日韩一区二区在线观看 | 日韩精品一区二区在线视频 | 成年人看片 | 91九色在线观看 | 日产乱码一二三区别在线 | 综合网色 | 国产成人一级电影 | 五月婷婷香蕉 | 91av播放| 五月天激情视频在线观看 | 色99视频 | 日韩av三区 | 这里只有精品视频在线观看 | www.色爱| 91精品国产福利在线观看 | 精品黄色在线观看 | 亚洲乱码中文字幕综合 | 久久亚洲成人网 | 久久免费99精品久久久久久 | 欧美精品久久久久久久久老牛影院 | 51精品国自产在线 | 在线中文字幕观看 | 日日操天天爽 | 国产aaa大片| 黄色软件在线观看 | 91精品一区国产高清在线gif | 久久久久久久久久久久99 | av免费线看 | 国产99久久久国产精品 | 一级性生活片 | 99久久久久成人国产免费 | 国产精品一区在线播放 | 黄网站免费久久 | 国产五月| 国产香蕉97碰碰碰视频在线观看 | 国产精品美女视频网站 | 亚洲成av人影片在线观看 | 香蕉视频91| 麻豆视频在线播放 | 久久综合之合合综合久久 | 久久精品成人热国产成 | 91九色成人 | 国产成人精品一二三区 | 午夜久久久影院 | 91网页版在线观看 | 欧美久久久一区二区三区 | 亚洲午夜精品一区二区三区电影院 | 激情黄色一级片 | 国模精品一区二区三区 | 精品久久一区二区三区 | 国产黄在线播放 | 最近日本中文字幕a | 亚洲春色奇米影视 | 五月天电影免费在线观看一区 | 亚洲一区美女视频在线观看免费 | 精品999在线 | 五月天久久久 | 91丨九色丨高潮丰满 | 国产精品粉嫩 | 免费观看高清 | 精品中文字幕在线播放 | 911久久香蕉国产线看观看 | 在线久久| 天天摸夜夜添 | 91亚·色| 蜜臀av性久久久久蜜臀aⅴ四虎 | 天天玩天天干 | 四虎成人精品永久免费av | 亚洲精品色视频 | 久久久久久久久久久久久影院 | 久久久久久亚洲精品 | 久久综合久久伊人 | 国产精品自产拍在线观看中文 | 精品久久片| 特级毛片网 | 日本乱码在线 | 欧美性另类 | 精品久久九九 | 奇米影视777影音先锋 | 91精品在线免费观看视频 | 精品一区在线看 | 在线精品一区二区 | 91在线精品一区二区 | 丁香激情五月婷婷 | zzijzzij日本成熟少妇 | 久久久久久久久精 | www.狠狠 | 久久精品一 | 国产糖心vlog在线观看 | 亚洲精品视频网址 | 中文字幕在线播放视频 | 97精品国产91久久久久久久 | 欧美在线一级片 | 久久久久在线观看 | 午夜视频在线网站 | 久草综合在线观看 | 日韩av三区| 国产99久久久国产精品免费二区 | 亚洲天堂网在线观看视频 | 国产精品剧情在线亚洲 | 最新av免费在线 | 81国产精品久久久久久久久久 | 激情 一区二区 | 欧美久久久 | 中文字幕免费观看 | 国内精品美女在线观看 | 91人人爱 | 91精品中文字幕 | 色综合久久88色综合天天免费 | 国产在线播放不卡 | 亚洲一区二区三区91 | 日韩视频1| 欧美日韩国产伦理 | 国产视频网站在线观看 | 亚洲视频在线观看 | 黄色av一区二区 | 欧美精品九九99久久 | 国产视频久久久久 | 99精品热视频 | 高清不卡毛片 | 二区视频在线观看 | 天天做天天爱夜夜爽 | 国产精品 日韩 欧美 | 精品久久精品 | 日日躁夜夜躁xxxxaaaa | 午夜在线免费观看视频 | 91超级碰碰 | 欧美网址在线观看 | 国产精品免费久久久久影院仙踪林 | 国精产品999国精产 久久久久 | 欧美精品一区二区蜜臀亚洲 | 精品久久久久久国产 | 欧美一二三区播放 | 麻豆传媒在线视频 | 亚洲性视频| 亚洲精品中文字幕视频 | 日韩在线高清 | 一级成人在线 | 91久色蝌蚪 | 久久综合精品国产一区二区三区 | 成年人免费观看在线视频 | 超碰在线日韩 | h视频日本 | 亚洲一区二区高潮无套美女 | 天天做日日爱夜夜爽 | 视频一区二区视频 | 婷婷丁香色 | 激情婷婷久久 | 99精品一级欧美片免费播放 | 精品国产乱码一区二区三区在线 | 香蕉影院在线 | 婷婷在线精品视频 | 欧美a视频| 爱情影院aqdy鲁丝片二区 | 国外av在线 | 三级视频片 | 亚洲一区二区黄色 | 国产视频在线免费观看 | 久久久午夜精品理论片中文字幕 | 在线视频 影院 | 欧美成a人片在线观看久 | 成人在线观看av | 99国产一区| 久草视频在线免费看 | 亚洲欧美在线综合 | 人人插人人做 | 伊人久久影视 | 一区二区毛片 | 狠狠色丁香婷综合久久 | 丰满少妇在线 | 国产毛片aaa| 丝袜精品视频 | 免费观看一级特黄欧美大片 | 国产高潮久久 | 日本99干网 | 天天射天天干 | 精品视频免费观看 | 成人免费在线电影 | 97视频在线观看播放 | 精品一二三区视频 | 成人资源网 | 91av在线精品 | 日韩有码在线观看视频 | 免费观看完整版无人区 | 久久96国产精品久久99漫画 | 成片免费观看视频999 | 色偷偷88欧美精品久久久 | 久久爱992xxoo| 亚洲一级黄色片 | 欧洲一区二区三区精品 | 天堂资源在线观看视频 | 99精品视频免费在线观看 | 日韩a在线| 91男人影院| 中文字幕av在线免费 | 久久区二区 | 国产专区视频在线观看 | 98精品国产自产在线观看 | 日韩精品免费一区二区三区 | 99久久精品费精品 | 国产污视频在线观看 | 狠狠做六月爱婷婷综合aⅴ 日本高清免费中文字幕 | 成年人视频在线观看免费 | 中文字幕视频一区 | 免费在线黄 | 精品视频中文字幕 | 久久在线视频在线 | 日本中文字幕免费观看 | 日韩在线观看视频中文字幕 | 天天曰视频 | 中文字幕五区 | 日韩高清一区在线 | 黄色片毛片 | 久久夜色精品国产欧美一区麻豆 | 久久天天躁 | 成人小电影在线看 | 久久综合狠狠综合久久狠狠色综合 | 亚洲精品色婷婷 | www.久久视频 | 麻豆传媒在线免费看 | 韩国精品福利一区二区三区 | 免费一级日韩欧美性大片 | 国内精品久久久久久久久久久 | 精品亚洲va在线va天堂资源站 | 婷婷性综合 | 中文字幕在线一区二区三区 | 国产精品视频最多的网站 | 久久久免费精品视频 | 色97在线 | 国产高清在线免费观看 | 波多野结衣一区二区 | 中文字幕 国产专区 | 亚洲少妇自拍 | 天堂网一区二区三区 | 一区二区三区在线看 | 亚洲电影第一页av | 久久精品一区二区三区中文字幕 | 日韩高清一二三区 | 超碰精品在线 | 国产精品丝袜久久久久久久不卡 | av丝袜美腿 | 天天干天天操天天射 | 色婷婷www | 五月婷婷综合激情网 | 特级免费毛片 | 欧美一区二区三区激情视频 | 一区二区在线不卡 | 久久久免费精品视频 | 午夜精品一区二区国产 | 久久久久免费看 | 日本大片免费观看在线 | 91精品日韩 | 亚洲日本成人网 | 久草手机视频 | 波多野结衣精品 | 综合视频在线 | 91久久精| 亚洲精品在线观看的 | 日韩精品一区二区久久 | 五月天婷婷视频 | 国产人免费人成免费视频 | av五月婷婷| 亚洲成人av免费 | 免费在线国产精品 | 国产小视频在线观看免费 | 欧美午夜理伦三级在线观看 | 国产精品大片在线观看 | 五月天亚洲婷婷 | 98涩涩国产露脸精品国产网 | 在线久热 | 国产免费黄色 | 豆豆色资源网xfplay | 五月天色婷婷丁香 | 精品国模一区二区 | 国产手机精品视频 | 中文字幕精品三区 | 91精品色 | 午夜精品一区二区三区免费视频 | 亚洲国产精品视频 | 国产精品丝袜 | 九九视频热 | 国产精品久久亚洲 | 午夜视频在线观看一区二区三区 | 国产精品久久久久久久免费大片 | 欧美日韩一级久久久久久免费看 | 亚洲视频免费在线观看 | 国产伦理一区二区 | 久久精品123| av综合 日韩| 免费在线观看国产黄 | 人人爽夜夜爽 | 人人爽久久久噜噜噜电影 | 97超视频免费观看 | 久久尤物电影视频在线观看 | 2023天天干 | 国产黄色免费电影 | 99热国产精品 | 欧美性极品xxxx娇小 | 中文视频一区二区 | 四虎在线观看视频 | 国产伦理久久精品久久久久_ | 精品国产一区二区三区四区在线观看 | 久久毛片视频 | 日本99精品 | 免费成人在线观看视频 | 国产玖玖视频 | 亚洲视屏 | 999国产在线 | 婷婷色网站 | 伊人天天狠天天添日日拍 | 国产精品夜夜夜一区二区三区尤 | 伊人五月天 | 成人免费观看视频大全 | 91av资源网 | 免费在线观看国产黄 | av日韩国产 | 亚洲作爱视频 | 美女视频黄免费的 | 欧美日韩中文视频 | 亚洲少妇xxxx | av在线亚洲天堂 | 日韩精品在线免费播放 | 99中文字幕在线观看 | 欧美成人区| 中文字幕在线看视频国产中文版 | 久草网视频| av先锋影音少妇 | 久草免费在线观看 | 久久久人人人 | 精品久久久99 | 91麻豆看国产在线紧急地址 | 狠狠躁夜夜躁人人爽超碰91 | 成人在线免费视频 | 欧美午夜精品久久久久久浪潮 | 久久成 | 久久手机精品视频 | 97在线观看免费高清 | 天天射天天射天天射 | 人人干网站| av天天色 | 久久亚洲私人国产精品 | 欧美成人免费在线 | www.大网伊人 | 日韩va亚洲va欧美va久久 | 亚洲区色 | 日韩色视频在线观看 | 久久视频精品在线观看 | 国产123av | 五月开心婷婷网 | 国内精品久久久久久久久久久久 | 免费在线黄色av | 国产区第一页 | 国产黄色片网站 | 成人免费观看a | 国模精品一区二区三区 | 美女免费电影 | 91亚洲激情 | 欧美天堂视频在线 | 黄色亚洲在线 | 亚洲精品久久久久久久蜜桃 | 亚洲成人黄 | 久久免费成人精品视频 | 中文字幕av最新 | 在线观看完整版免费 | 午夜一级免费电影 | 高清视频一区二区三区 | 午夜91在线 | 毛片永久免费 | 亚洲激色 | 久久人人爽人人人人片 | 国产一二区在线观看 | 成人黄色片免费看 | 亚洲午夜av电影 | 波多野结依在线观看 | 亚洲1级片 | 欧美日韩在线观看一区二区 | 综合影视| 91精品国产综合久久久久久久 | 九九综合在线 | 精品国产伦一区二区三区观看说明 | 国产一区麻豆 | 日本在线观看中文字幕无线观看 | 久久桃花网 | www.99热精品 | 国产精品99久久99久久久二8 | 国产资源网 | 国产精品视频全国免费观看 | 亚洲婷婷在线视频 | 中文字幕在线视频一区二区三区 | 久久观看免费视频 | 一区二区视频在线免费观看 | 亚洲狠狠婷婷综合久久久 | 91精品在线观看视频 | 91av网址 | av在线免费在线 | 黄色免费视频在线观看 | 色中文字幕在线观看 | 天天激情天天干 | 午夜久久成人 | 国产欧美精品一区二区三区四区 | 操操色 | 日韩一区二区免费视频 | 亚洲电影图片小说 | 午夜成人免费影院 | 正在播放亚洲精品 | 日韩一区二区在线免费观看 | 亚洲人精品午夜 | 日韩欧美v | 天天搞天天干 | 天天操天天舔天天干 | 婷婷丁香花五月天 | 中日韩在线视频 | 中文字幕在线观看网 | 黄网站app在线观看免费视频 | 免费看wwwwwwwwwww的视频 久久久久久99精品 91中文字幕视频 | 69国产精品成人在线播放 | 天天综合在线观看 | 欧美大片mv免费 | 波多野结衣电影一区二区三区 | 国产福利一区在线观看 | 久久久久免费网站 | 亚洲午夜不卡 | 在线观看免费成人av | 日日躁你夜夜躁你av蜜 | 久久精品视频2 | 999视频网 | 日本中文字幕电影在线免费观看 | 国产精品久久久久久久久久久久久久 | 国产精品一区二区久久精品爱微奶 | 天天干天天看 | 日韩av看片 | 日本黄色大片儿 | 国产成人精品日本亚洲999 | 欧美粗又大| 亚洲精选在线 | 国产一区高清在线观看 | 白丝av在线| 亚洲黄色在线 | 成人免费观看视频大全 | 开心激情久久 | 日韩av中文字幕在线 | av一区在线| 国产日韩亚洲 | 亚洲视频大全 | 最新av在线播放 | 国产精品黄色在线观看 | 91麻豆网站 | 久久国产视频网站 | 国产成人在线网站 | 国产高清在线 | 日韩在线观看视频网站 | 天天爱天天 | 国产成人精品福利 | 九9热这里真品2 | 午夜av在线免费 | 国产一区在线免费观看 | 欧美日韩视频在线 | 超碰在线天天 | 综合伊人av | 亚洲免费在线 | 欧美成人按摩 | 久久免费视频7 | 成人免费一级 | 在线观看av网站 | www.五月婷婷 | 国产美腿白丝袜足在线av | 亚洲日本va中文字幕 | 欧美精彩视频在线观看 | 亚洲男女精品 | 免费看网站在线 | 特级毛片网站 | 96久久久 | 中文字幕免费久久 | 香蕉91视频 | 日韩精品中文字幕有码 | 亚洲激情 | 伊人色**天天综合婷婷 | 亚洲美女免费精品视频在线观看 | 国产精品免费一区二区 | 亚洲国产影院av久久久久 | 天天综合色天天综合 | 国产精品99蜜臀久久不卡二区 | 91视频啊啊啊 | 久久伊人精品一区二区三区 | 欧美在线观看视频 | 国产精品自产拍在线观看桃花 | 午夜精品电影一区二区在线 | 精品色综合 | 色婷婷在线视频 | 欧美成人在线网站 | 欧美日韩国产精品一区 | 精品国偷自产在线 | 国产精品女人久久久久久 | 亚洲va在线va天堂va偷拍 | 免费99精品国产自在在线 | 久草在线网址 | 99欧美视频| 久99久中文字幕在线 | 91色一区二区三区 | 国产综合激情 | 亚洲黄在线观看 | 久久综合加勒比 | 日韩精品中字 | 久久视频在线观看 | 亚洲视频在线观看网站 | 亚洲欧洲成人精品av97 | 97免费在线观看视频 | 久久亚洲综合国产精品99麻豆的功能介绍 | 国产高清不卡av | 91久久国产自产拍夜夜嗨 | 美女网站视频免费黄 | av在线免费观看网站 | 日韩欧美视频免费在线观看 | 97电影在线看视频 | 91av资源在线 | 国产丝袜美腿在线 | 91成人在线网站 | 成人黄色毛片 | 国产精品女人久久久 | 超碰在线最新地址 | 中文字幕一区二区三区乱码在线 | 亚洲精品在线观看的 | 成人网在线免费视频 | 久操视频在线播放 | 久久九九久久 | 在线观看爱爱视频 | 久久字幕精品一区 | 在线最新av | 激情久久五月 | 97免费在线观看视频 | 国产91精品看黄网站 | 五月综合激情 | 国产不卡在线 | 在线中文字幕av观看 |