【问题标题】:Couldn't import Django. Are you sure it's installed and available on your PYTHONPATH无法导入 Django。您确定它已安装并在您的 PYTHONPATH 上可用吗
【发布时间】:2020-05-12 08:11:08
【问题描述】:

我正在创建一个 startproject,并尝试使用命令行迁移默认 django 架构:

manage.py migrate

结果是:"Couldn't import Django. Are you sure it's installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment?"

我正在使用虚拟环境,并且安装了下一个依赖项:

Django==2.1.2
psycopg2==2.7.5
pytz==2018.5 

当然,我正在尝试在激活虚拟环境的情况下进行迁移。

有人知道我的版本兼容性是否有问题吗?我的 PostgreSQL 是 10。

pip list command

【问题讨论】:

  • 你能分享pip list命令的输出吗?还有你用什么做虚拟环境,是virtualenv
  • 是的,我正在使用 virtualenv
  • 我不认为这是关于 PostgreSQL 之类的。你如何运行manage.py migrate?你可以在 virtualenv 启用时尝试python manage.py migrate

标签: python django postgresql


【解决方案1】:

这很可能意味着您没有在 激活的virtualenv 中运行命令:

C:\> my_venv\Scripts\activate

(my_venv) C:\>  (type your command now)

您收到的错误消息是if unable to import django.core.management:

try:
    from django.core.management import execute_from_command_line
except ImportError as exc:
    raise ImportError(
        "Couldn't import Django. Are you sure it's installed and "
        "available on your PYTHONPATH environment variable? Did you "
        "forget to activate a virtual environment?"
    ) from exc

您可以使用与错误命令相同的环境进入 Python 控制台(例如,在您的情况下,在同一控制台窗口中输入 python)并尝试手动导入该模块,然后输入 diagnose the resulting import error

【讨论】:

  • 感谢您的回答,它有效。我在 Windows 命令提示符下运行了 manage.py runserver,但它没有工作,但一旦我在 Anaconda 提示符下键入相同的命令,它就工作了。那么,我可以认为 Anaconda prompt 是一种激活的 virtualenv 吗?
  • @Jason Anaconda 的提示会在启动时激活 base Anaconda 环境。严格来说,Anaconda 环境不是 virtualenv(它不是基于 virtualenv 模块,而是使用 Anaconda 的自定义逻辑),但它的工作方式相同,因此可以认为是 virtualenv 的一种。
猜你喜欢
  • 2018-09-24
  • 2022-01-07
  • 2018-12-09
  • 2021-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-17
  • 1970-01-01
相关资源
最近更新 更多