【问题标题】:"No module named 'psycopg2._psycopg'" when trying to import psycopg2尝试导入 psycopg2 时“没有名为‘psycopg2._psycopg’的模块”
【发布时间】:2016-04-09 22:40:30
【问题描述】:

尝试设置我的 Django 项目以使用 postgres。我在 Windows 10 上,使用 Python 3.5.1。使用 easy_install 从http://www.stickpeople.com/projects/python/win-psycopg/ 为 Python 3.5 安装 psycopg。我按照https://djangogirls.gitbooks.io/django-girls-tutorial-extensions/content/optional_postgresql_installation/index.html 的指南进行操作,但是当我尝试导入 psycopg2 以验证安装成功时,我得到了:

(venv) D:\Projects\webcomic>python -c "import psycopg2"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "D:\Projects\webcomic\venv\lib\site-packages\psycopg2-2.6.1-py3.5-win32.egg\psycopg2\__init__.py", line 50, in <module>
from psycopg2._psycopg import BINARY, NUMBER, STRING, DATETIME, ROWID
ImportError: No module named 'psycopg2._psycopg'

不知道该怎么办。对于它的价值,我的 sys.path 看起来像

>>> pprint(sys.path)
['',
 'D:\\Projects\\webcomic\\venv\\lib\\site-packages\\psycopg2-2.6.1-py3.5-win32.egg',
 'D:\\Projects\\webcomic\\venv\\Scripts\\python35.zip',
 'D:\\Projects\\webcomic\\venv\\DLLs',
 'D:\\Projects\\webcomic\\venv\\lib',
 'D:\\Projects\\webcomic\\venv\\Scripts',
 'c:\\users\\user\\appdata\\local\\programs\\python\\python35-32\\Lib',
 'c:\\users\\user\\appdata\\local\\programs\\python\\python35-32\\DLLs',
 'D:\\Projects\\webcomic\\venv',
 'D:\\Projects\\webcomic\\venv\\lib\\site-packages']

【问题讨论】:

  • 您如何确定easy_install 安装到正确的 Python 安装? :) 顺便说一句,pip 在各方面都优于easy_install。试试pip3 install psycopg2pip install psycopg2
  • 我最初尝试使用 pip,但它给我带来了麻烦。即...Command "d:\projects\webcomic\venv\scripts\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\User\\AppData\\Local\\Temp\\pip-build-ydlm_w4u\\psycopg2\\setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record C:\[...]\install-record.txt --single-version-externally-managed --compile --install-headers d:\projects\webcomic\venv\include\site\python3.5\psycopg2" failed with error code 1 in C:\[...]\psycopg2\
  • stickpeople.com/projects/python/win-psycopg因为你使用的是windows,从这个链接下载exe并安装
  • 这就是我最初尝试做的——但它声称它未能在我的注册表中找到 Python——然后当它提示我选择 Python 版本时不允许我选择任何东西在我的电脑上。

标签: python django postgresql


【解决方案1】:

转到venv/Lib/site-packages,然后删除那里的任何与psycopg2相关的文件或文件夹,然后运行以下命令:

pip install psycopg2

注意确保 venv 仍在运行。 为确保它被正确导入,运行python manage.py migrate,它应该运行没有任何错误。

希望我能帮上忙!

【讨论】:

    最近更新 更多