【问题标题】:Error: No module named psycopg2.extensions错误:没有名为 psycopg2.extensions 的模块
【发布时间】:2012-09-25 12:47:08
【问题描述】:

我正在尝试为我的 django 项目设置一个 PostgreSQL 数据库,我相信我现在已经完成了,这要感谢我对上一个问题 Problems setting up a postgreSQL database for a django project 的回复。我现在正在尝试在终端中运行命令“python manage.py runserver”来启动我的本地主机,但是当我运行该命令时,我看到了这个响应......

Error: No module named psycopg2.extensions

我不确定这意味着什么 - 我尝试下载 psycopg2,但似乎找不到使用自制软件下载 psycopg2 的方法。我尝试过 easy_install、pip install 和 sudo,但都返回这样的错误...

Downloading http://www.psycopg.org/psycopg/tarballs/PSYCOPG-2-4/psycopg2-2.4.5.tar.gz
Processing psycopg2-2.4.5.tar.gz
Writing /tmp/easy_install-l7Qi62/psycopg2-2.4.5/setup.cfg
Running psycopg2-2.4.5/setup.py -q bdist_egg --dist-dir /tmp/easy_install-l7Qi62/psycopg2-2.4.5/egg-dist-tmp-PBP5Ds
no previously-included directories found matching 'doc/src/_build'
unable to execute gcc-4.0: No such file or directory
error: Setup script exited with error: command 'gcc-4.0' failed with exit status 1

如何解决这个问题?

【问题讨论】:

  • 您没有安装编译器,您需要一个编译器来构建 psycopg2 包。如果您可以提供有关您的操作系统的详细信息,这里的人可能会为您提供帮助。
  • @IanClelland 谢谢伊恩。我在 Mac OS X 10.6.8 上。如果有帮助,我已经安装了自制软件。
  • 从正确的 venv 检查您正在使用的解释器。

标签: python django postgresql psycopg2


【解决方案1】:

首先要做的是安装依赖项。

sudo apt-get build-dep python-psycopg2
sudo apt install python3-psycopg2 # Python 3

之后进入你的 virtualenv 并使用:

pip install psycopg2-binary

这两个命令应该可以解决问题。

【讨论】:

  • 我必须说我再也不会使用 pip 以外的任何东西了,它好多了:-)
  • 对于 Python 3,sudo apt-get build-dep python3-psycopg2
  • 用 apt 构建依赖关系,然后用 pip 安装有什么意义?单个命令sudo apt-get install python-psycopg2 有什么问题?对我来说效果很好。
  • 在尝试上述任何命令时得到You must put some 'source' URIs in your sources.list
  • @nba2020: sudo apt-get...?这些是 psycopg2-binary 的 linux (debian/mint/ubuntu) 先决条件。如果您使用 windows 或类似的东西,您应该找到 psycopg2-binary 的 windows 先决条件,并在安装 psycopg2-binary 之前应用它们。或者也许(我不确定)你可以跳过先决条件并安装 psycopg2 而不是 psycopg2-binary 并且它可以工作。但是 psycopg2(没有 -binary)已被弃用,因此如果您尝试正确安装 psycopg2-binary 会更好。
【解决方案2】:
pip install psycopg2-binary

psycopg2 轮子包将从 2.8 版重命名;为了继续从二进制安装,请改用“pip install psycopg2-binary”。详情见:http://initd.org/psycopg/docs/install.html#binary-install-from-pypi

【讨论】:

  • 这适用于我在 ubuntu 18.04 和 python 3 上。谢谢。
  • 这对我有用,也不需要任何root权限
  • 很高兴它有帮助。 ^_^
  • 这对我的帮助还不够。在历史上的某个地方,我已经正确安装了 psycopg2 及更高版本(来自:-r requirements.txt) psycopg2-binary。一切都“很好”。但是,一旦我卸载了 psycopg2(没有 -binary),我就会收到“没有名为 psycopg2.extensions 的模块”错误。卸载/安装 psycopg2-binary 对我没有帮助。对我来说,没有安装先决条件(请参阅@FernandoMunoz 答案:apt install build-dep python-psycopg2)。安装这些 Debian 软件包和更高版本(!) psycopg2-binary 对我有帮助。
  • @mirek 感谢您的补充。
【解决方案3】:

对于Django 2python 3 使用pip3 安装psycopg2

pip3 install psycopg2

【讨论】:

  • 如果你想避免从源代码安装 psycopg2-binary 而不是
【解决方案4】:

对于macOS Mojave,只需运行pip install psycopg2-binary。对我来说很好,python 版本 -> Python 3.7.2

【讨论】:

    【解决方案5】:

    我使用这些命令成功安装了它:

    sudo apt-get install libpq-dev python-dev
    pip install psycopg2
    

    【讨论】:

      【解决方案6】:

      先安装apt-get install python-setuptools

      那就试试easy_install psycopg2

      【讨论】:

        【解决方案7】:

        如果你的 python 是从 Ubuntu 安装程序安装的,这对我在 Ubuntu 上是有帮助的。在尝试“apt-get install”和“pip install”失败后,我这样做了:

        在终端:

        sudo synaptic
        

        然后在突触搜索字段中写入

        psycopg2
        

        选择

        python-psycopg2
        

        使用鼠标右键单击并按下“应用”将其标记为安装。当然,如果你还没有安装 synaptic,那么先做:

        sudo apt-get install synaptic
        

        【讨论】:

          【解决方案8】:

          我最近遇到了同样的问题,这段代码有效。

          sudo apt-get install libpq-dev python-dev-is-python3
          

          然后

          pip3 install psycopg2
          

          【讨论】:

            【解决方案9】:

            在 python 3.4 中,在虚拟环境中,请确保您首先具有构建依赖项:

            sudo apt-get build-dep python3-psycopg2
            

            然后安装它:

            pip install psycopg2 
            

            【讨论】:

            • E: You must put some 'source' URIs in your sources.list
            【解决方案10】:

            在 Alpine Linux(大多数 docker 容器)上:

            apk add postgresql-dev
            

            然后:

            pip install psycopg2-binary
            

            【讨论】:

              【解决方案11】:

              我只在导入 psycopg2 后使用了扩展:

              import psycopg2
              
              ...
              
              psycopg2.extensions.AsIs(anap[i])
              

              【讨论】:

              • @f p 感谢您的回复。你是如何导入 psycopg2 的?你用自制的吗?我尝试在终端中运行命令“import psycopg2”,但它返回“ImportError:没有名为 psycopg2 的模块”。
              • 我正在使用 ubuntu,它可以在不编译的情况下安装。显示的示例是在 python 中。要在 windows 中安装,请查看stickpeople.com/projects/python/win-psycopg 你想要的是先安装它。
              • @f p 谢谢。我在 mac - mac 有类似的解决方案吗?
              • @f b 谢谢。我试试看:)
              【解决方案12】:

              您似乎需要gcc-4.0,并且指定您的操作系统类型和版本会有所帮助。

              也许这个问题会对你有所帮助:Installing GCC to Mac OS X Leopard without installing Xcode

              更新

              我是 Windows 用户,因此无法测试您的设置,但快速 google 指向了更多链接:

              【讨论】:

              • 谢谢。我已经下载并安装了 GCC 10.6,因为我的操作系统是 10.6.8。然后我运行了easy_install psycopg2,但它返回了这个错误......“没有找到与'doc/src/_build'匹配的先前包含的目录无法执行gcc-4.0:没有这样的文件或目录错误:安装脚本退出并出现错误:命令' gcc-4.0' 失败,退出状态为 1"。你知道为什么会这样吗?
              【解决方案13】:

              我在运行 Mavericks (10.9) 的 Mac 上尝试运行 pip2 install psycopg2 时遇到了 No module named psycopg2.extensions 错误。我不认为我的堆栈跟踪包含有关 gcc 的消息,它还包含一个提示:

              Error: pg_config executable not found.
              
              Please add the directory containing pg_config to the PATH
              or specify the full executable path with the option:
              
                  python setup.py build_ext --pg-config /path/to/pg_config build ...
              
              or with the pg_config option in 'setup.cfg'.
              

              我在我的 Postgres 安装中查找了 pg_config 文件,并将包含它的文件夹添加到我的路径中:/Applications/Postgres.app/Contents/Versions/9.4/bin。您的路径可能不同,特别是如果您安装了不同版本的 Postgres - 我会四处寻找,直到您找到 bin/ 文件夹。完成此操作后,安装成功。

              【讨论】:

                【解决方案14】:

                试试这个:
                sudo pip install -i https://testpypi.python.org/pypi psycopg2==2.7b2
                .. 如果您遇到 egg 错误,这将特别有用

                如果遇到 gcc 错误,则在 aws ec2 实例上;试试这个
                1。 sudo yum install gcc python-setuptools python-devel postgresql-devel
                2. sudo su -
                3. sudo pip install psycopg2

                【讨论】:

                  【解决方案15】:

                  这个对我有用

                  python manage.py 迁移

                  【讨论】:

                    【解决方案16】:

                    我在尝试将 python 脚本作为 sudo 运行时遇到了这样的问题,而 psycopg2 是通过 pip3 安装到我自己的用户目录中的。

                    我设法为自己解决了这个问题,删除了 pip3 版本,并通过 apt 安装它:

                    pip3 uninstall psycopg2
                    sudo apt install python3-psycopg2
                    

                    【讨论】:

                      【解决方案17】:
                      pip3 install django-psycopg2-extension
                      

                      我知道我迟到了,这里有很多答案也可以解决问题。但是今天我也遇到了这个问题,这些都对我没有帮助。然后我发现上面的神奇命令解决了我的问题:-P。所以我发布这个可能也是你的情况。
                      编码愉快。

                      【讨论】:

                        【解决方案18】:

                        你可以从https://github.com/kennethreitz/osx-gcc-installer为macos安装gcc
                        安装 gcc 后,您将能够使用 easy_installpip 安装 psycopg

                        【讨论】:

                          【解决方案19】:

                          如果没有安装 psycopg2 则检查是否安装

                          sudo apt-get install psycopg2
                          

                          安装依赖项。

                          sudo apt-get build-dep python-psycopg2
                          

                          这两个命令应该可以解决问题。

                          【讨论】:

                            【解决方案20】:

                            这个错误是因为你没有在你的项目虚拟环境中安装 postgres 数据库。您应该运行这些命令之一。 从终端你可以命令 sudo。

                            sudo apt-get install build-dep python-psycopg2
                            

                            对于 pip(pip 基本上适用于 python)

                            pip install psycopg2
                            

                            pip3 install psycopg2-binary
                            

                            我很确定它对你有用。

                            【讨论】:

                              猜你喜欢
                              • 2013-09-17
                              • 1970-01-01
                              • 2019-09-29
                              • 1970-01-01
                              • 2023-03-25
                              • 2012-01-08
                              • 1970-01-01
                              • 1970-01-01
                              • 2012-10-06
                              相关资源
                              最近更新 更多