首页 > 解决方案 > 无法使用 psycopg2 和 pythonista 应用程序访问 postgreSQL 数据库

问题描述

我是一个相对较新的编程新手,我正在开发一个应用程序,该应用程序利用 AWS RDS PostgreSQL 数据库允许我在我的设备上创建或更新应用程序的信息,特别是在我的 2016 Windows 10 Surfacebook 和我的 iphone 8+ 之间。

使用 psycopg2,我可以使用 Surfacebook 相对轻松地连接到我的数据库。但是,我现在正在尝试使用 Pythonista 应用程序(一个用于 Iphone 的 Python 解释器,允许您创建和执行 Python 程序)来开发移动设备,并且遇到了 psycopg2 模块的问题。

使用 StaSh 终端(允许在移动设备上安装 pip 的 Pythonista 脚本)我安装了 psycopg2,pip install psycopg2但是当我尝试运行该程序时:

import psycopg2

conn = psycopg2.connect(
    host="localhost",
    database="database",
    user="user",
    password="password"
)
c = conn.cursor()

def list_all_accounts():
    with conn:
    c.execute("SELECT * FROM table")
        result = c.fetchall()
    return result

import pprint
pprint.pprint(list_all_accounts())

我得到了ModuleNotFoundError 完整的回溯:

  File "/private/var/mobile/Containers/Shared/AppGroup/60906921-DCB6-478D-898E-EDA48296C57C/Pythonista3/Documents/my-apps/Pandle/model.py", line 9, in <module>
    import psycopg2
  File "/private/var/mobile/Containers/Shared/AppGroup/60906921-DCB6-478D-898E-EDA48296C57C/Pythonista3/Documents/site-packages-3/psycopg2/__init__.py", line 51, in <module>
    from psycopg2._psycopg import (                     # noqa
ModuleNotFoundError: No module named 'psycopg2._psycopg'

当我检查已安装的模块时,在 psycopg2 目录中确实没有名为_psycopg的模块。

我也尝试过使用pip install pyscopg2-binary,但也没有用。我想知道是否有人知道我是否可以使用 pyscopg2 使用 Pythonista 访问远程 AWS PostgreSQL 数据库,或者 Pythonista 本身是否有某种我在这方面不知道的限制。谢谢您的帮助。

标签: pythonpostgresqlpsycopg2pythonista

解决方案


Pythonista 不支持 pip 安装二进制文件,也没有 C 代码的编译器。

有一个纯 Python 替代品pg8000,至少有 1 个 Pythonista 用户报告它可以工作。


推荐阅读