【问题标题】:ImportRrror: no module named 'psycopg2'ImportError:没有名为“psycopg2”的模块
【发布时间】:2023-03-28 18:35:02
【问题描述】:

我正在尝试使用 PostgreSQL 作为我的数据库,但在尝试启动我的服务器时遇到了问题。这是我正在做的事情:

  • 我设置并激活了一个虚拟环境
  • Django 1.8.4 已安装
  • psycopg2 2.5.2 已安装
  • wheel 0.24.0 已安装

我正在使用 python 3.4。

按要求添加 pip freeze 输出:

Django==1.8.4
psycopg2==2.5.2
wheel==0.24.0

当我使用默认的 sqlite3 db 运行服务器时,我没有问题;它运行良好。一旦我切换到 postgres,我就会收到以下错误: ImportError:没有名为 psycopg2 的模块。

pip install psycopg2 无法正常工作,因此我使用以下命令从 github 安装了 psycopg2:pip install git+https://github.com/nwcell/psycopg2-windows.git@win64-py34#egg=psycopg2

非常感谢您的指导。

【问题讨论】:

  • pip install psycopg2 的输出是什么?有没有错误?你能在 Python shell 中 import psycopg2 吗?
  • 请注意存储库上的这条评论,“因为 psycopg2 是用于 PostgreSQL,你显然希望先安装它。”你安装了 postgresql 吗?
  • Joseph, pip install psycopg2 返回以下错误:Microsoft Visual C++ 10.0 is required (unable to find vcvarsall.bat)。
  • 是的,PostgreSQL 已启动并正在运行;我可以从命令行登录并创建数据库。
  • @Jaime 你安装了 Visual C++ 10 了吗?

标签: python django postgresql importerror


【解决方案1】:

指定您使用的操作系统很重要,因为我从评论中猜测您正在使用 Windows。

在windows上,如果你不习惯安装Visual C++库,你可以下载包的whl文件。

http://www.lfd.uci.edu/~gohlke/pythonlibs/#psycopg

为您选择正确的架构和 python 版本并运行

pip install path/to/packagename.whl

确保您使用的是 pip 版本 6 或更新版本

【讨论】:

  • Windows 7。抱歉我忘了提。
【解决方案2】:

在安装 psycopg2 之前,请先安装 sudo apt-get build-dep python-psycopg2

【讨论】:

    【解决方案3】:

    好像您在 Windows 中。对于 Windows,您需要从二进制文件下载并安装。您可以从这里下载安装程序。

    http://www.stickpeople.com/projects/python/win-psycopg/

    确保根据架构和 python 版本选择正确的文件。

    使用安装程序安装 psycopg2 后,重新创建虚拟环境以使插件正常工作。

    或者,您可以从 msdn 下载中心下载并安装 C++ 可再发行组件,然后尝试使用 pip install psycopg2

    【讨论】:

    • 好的,所以我基本上在这里尝试了所有方法,我相信它对发布解决方案的人有用。谢谢大家的帮助。但是我没有尝试解决这个问题。我要么在安装 psycopg2 时遇到问题,要么在安装后出现上述 ImportError。我将尝试在 OS X 上运行 postgresql 和 django。希望我在 OS X 上好运。
    • 您还需要研究另一个问题。即使您在 x64 系统中,浏览器也不是。因此,如果您使用 python 的默认安装程序,很可能您下载的是 32 位安装程序。因此,请确保您安装了正确的架构版本。
    • 为了补充 Jamie 的评论,我按照上面的链接下载了 32 位版本,然后在我的虚拟环境中执行了 pip install psycopg2。这对我有用..
    最近更新 更多