使用 PyCharmCE 的 psycopg2 运行 Flask 应用程序的问题
Posted
技术标签:
【中文标题】使用 PyCharmCE 的 psycopg2 运行 Flask 应用程序的问题【英文标题】:Issue running Flask application with psycopg2 from PyCharmCE 【发布时间】:2021-12-04 22:13:58 【问题描述】:我正在配置一个 Flask 应用程序以使用 PostgreSQL,并且据我所知,我已经安装了所有必要的包和依赖项。从我的系统终端或从 virtualenv 运行我的“app.py”文件似乎可行。
当我尝试从 PyCharmCE 内的同一 venv 中运行我的“app.py”文件时,会出现此问题。
File "/Users/kilgow/Desktop/seasonwork_code/venv/lib/python3.8/site-packages/flask_sqlalchemy/__init__.py", line 1027, in create_engine
return sqlalchemy.create_engine(sa_url, **engine_opts)
File "<string>", line 2, in create_engine
File "/Users/kilgow/Desktop/seasonwork_code/venv/lib/python3.8/site-packages/sqlalchemy/util/deprecations.py", line 298, in warned
return fn(*args, **kwargs)
File "/Users/kilgow/Desktop/seasonwork_code/venv/lib/python3.8/site-packages/sqlalchemy/engine/create.py", line 560, in create_engine
dbapi = dialect_cls.dbapi(**dbapi_args)
File "/Users/kilgow/Desktop/seasonwork_code/venv/lib/python3.8/site-packages/sqlalchemy/dialects/postgresql/psycopg2.py", line 793, in dbapi
import psycopg2
ModuleNotFoundError: No module named 'psycopg2'
(<class 'ModuleNotFoundError'>, ModuleNotFoundError("No module named 'psycopg2'"), <traceback object at 0x104b8fb00>)
任何想法都将不胜感激,因为我不明白为什么这个问题只发生在 PyCharm 中。如果有任何我不知道的操作系统特定问题,我会使用 macOS。
【问题讨论】:
尝试卸载并重新安装psycopg2,如果还是不行,安装psycopg2-binary 我已经尝试过很多地方,但不幸的是没有运气 【参考方案1】:使用模块创建虚拟环境通常是一个好习惯。之后,安装所有软件包。 Pycharm 通常会为您创建一个虚拟环境,因此在安装软件包之前,请确保您的虚拟环境处于活动状态。
对于psycopg2
未找到的情况,您可以通过以下方式解决
而不是psycopg2
安装psycopg2-binary
【讨论】:
我应该澄清一下,我已经尝试在 PyCharm 内外使用虚拟环境。我可以在 PyCharm 之外工作,但在 IDE 中运行我的应用程序时不能,这很奇怪。 在您的系统中拥有全局包可能会使您的应用程序在您现在使用虚拟环境时表现不同。这就是为什么有必要创建一个将您的开发包与系统范围的 python 包隔离开来以上是关于使用 PyCharmCE 的 psycopg2 运行 Flask 应用程序的问题的主要内容,如果未能解决你的问题,请参考以下文章
尝试使用“pip install psycopg2”在 Mac 上安装 psycopg2 时出现权限错误
当我尝试使用 pip install psycopg2 安装 psycopg2 时,出现此错误。我该怎么办? [复制]
使用 Psycopg2 将 Spark DataFrame 写入 Redshift 时出错:无法腌制 psycopg2.extensions.cursor 对象