

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用 Python 连接到 Neptune 数据库实例
<a name="access-graph-gremlin-python"></a>

**重要**  
选择正确的 Apache TinkerPop Gremlin 驱动程序版本对于与你的 Neptune 引擎版本兼容至关重要。使用不兼容的版本可能会导致连接失败或意外行为。有关版本兼容性的详细信息，请参阅[使用 Gremlin 访问 Neptune 图形](access-graph-gremlin.md)。

以下部分将指导您完成 Python 示例的运行，该示例连接到 Amazon Neptune 数据库实例并执行 Gremlin 遍历。

必须从与您的 Neptune 数据库实例位于同一虚拟私有云 (VPC) 中的 Amazon EC2 实例中按照这些说明操作。

开始之前，请执行以下操作：
+ 从 [Python.org 网站](https://www.python.org/downloads/)下载并安装 Python 3.6 或更高版本。
+ 验证您是否安装了 **pip**。如果您没有 **pip** 或不确定是否有，请参阅 **pip** 文档中的[是否需要安装 pip？](https://pip.pypa.io/en/stable/installing/#do-i-need-to-install-pip)。
+ 如果您的 Python 安装尚未具有该命令，请按如下方式下载 `futures`：`pip install futures`



**使用 Python 连接到 Neptune**

1. 输入以下命令以安装 `gremlinpython` 程序包：

   ```
   pip install --user gremlinpython
   ```

1. 创建名为 `gremlinexample.py` 的文件，然后在文本编辑器中打开它。

1. 将以下内容复制到 `gremlinexample.py` 文件中。*your-neptune-endpoint*替换为 Neptune 数据库集群的地址和 *your-neptune-port* Neptune 数据库集群的端口（默认值：8182）。

   有关查找 Neptune 数据库实例的地址的信息，请参阅[连接到 Amazon Neptune 端点](feature-overview-endpoints.md)部分。

    下面的示例演示了如何与 Gremlin Python 进行连接。

   ```
   import boto3
   import os
   from botocore.auth import SigV4Auth
   from botocore.awsrequest import AWSRequest
   from gremlin_python.driver.driver_remote_connection import DriverRemoteConnection
   from gremlin_python.process.anonymous_traversal import traversal
   
   database_url = "wss://your-neptune-endpoint:your-neptune-port/gremlin"
   
   remoteConn = DriverRemoteConnection(database_url, "g")
   
   g = traversal().withRemote(remoteConn)
   
   print(g.inject(1).toList())
   remoteConn.close()
   ```

1. 输入以下命令以运行示例：

   ```
   python gremlinexample.py
   ```

   此示例结尾处的 Gremlin 查询将返回列表中的顶点 (`g.V().limit(2)`)。然后，此列表使用标准 Python `print` 函数输出。
**注意**  
要将遍历提交到服务器进行评估，需要 Gremlin 查询的最后一部分 `toList()`。如果您未包含该方法或其它等效方法，该查询将不会提交到 Neptune 数据库实例。

   以下方法将查询提交到 Neptune 数据库实例：
   + `toList()`
   + `toSet()`
   + `next()`
   + `nextTraverser()`
   + `iterate()`

   

   上述示例通过使用 `g.V().limit(2).toList()` 遍历返回图形中的前两个顶点。要查询其他内容，请将其替换为具有其中一种适当的结尾方法的其他 Gremlin 遍历。

## IAM 身份验证
<a name="access-graph-gremlin-python-iam"></a>

Neptune 支持 [IAM 身份验证](iam-auth-enable.md)来控制对数据库集群的访问。如果您启用了 IAM 身份验证，则需要使用签名版本 4 签名来验证您的请求。有关从 Python 客户端进行连接的详细说明和代码示例，请参阅[通过 Gremlin Python 使用 IAM 身份验证连接到 Amazon Neptune 数据库](gremlin-python-iam-auth.md)。