【问题标题】:Struggling to get Django server to run in virtual environment努力让 Django 服务器在虚拟环境中运行
【发布时间】:2020-10-18 16:54:00
【问题描述】:

我是使用 Django 和 Python 的新手,在尝试让我的 manage.py 应用程序在虚拟环境中运行时遇到了一些困难。

我的 models.py 文件顶部出现以下错误:

我最初认为这是 pylint 未指向正确环境的问题(当我将 Python 解释器切换到虚拟环境之外的解释器时,pylint 错误消失了);但是,每当我尝试运行我的服务器时,都会收到以下错误:

(.venv) tjmcerlean@LAPTOP-RKLCBQLO:/mnt/c/Users/tjmce/Desktop/Git/CS50w/Project 2/commerce$ python manage.py runserverTraceback (most recent call last):
  File "manage.py", line 10, in main
    from django.core.management import execute_from_command_line
  File "/mnt/c/Users/tjmce/Desktop/Git/CS50w/Project 2/commerce/.venv/lib/python3.8/site-packages/django/__init__.py", line 1, in <module>
    from django.utils.version import get_version
ModuleNotFoundError: No module named 'django.utils'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "manage.py", line 21, in <module>
    main()
  File "manage.py", line 12, in main
    raise ImportError(
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?

此错误似乎表明虚拟环境未激活。但是,我使用虚拟环境的位置(.venv/bin/activate)激活它,并看到 bash 终端现在显示(.venv):

另外,当使用 (pip freeze) 命令时,我可以看到 Django 也安装在虚拟环境中:

我不知道为什么服务器无法运行,非常感谢任何建议。

谢谢!

【问题讨论】:

  • 你有没有把你的项目命名为django
  • 不,很遗憾没有。
  • 你的 PYTHONPATH 变量中有什么?
  • 您是否尝试重新安装 Django 或重新创建 virtualenv
  • 是的,我已经重新创建了虚拟环境并重新安装了 Django,但没有运气。我在新环境中遇到了同样的错误。

标签: python django


【解决方案1】:

在激活的 env 中调用 django.__file__ 会显示真实路径:

python -c "import django; print(django.__file__)"

它应该看起来像 /usr/local/lib/python3.8/site-packages/django/__init__.py 然后重新检查 PYTHONPATH 环境变量。

也许您已经在 venv 和系统范围内安装了 2 个 Django,但其中一些没有 db。并删除您工作文件夹中的所有 *.pyc 文件。

【讨论】:

  • 感谢您的回答。运行代码时出现以下错误: (.venv) tjmcerlean@LAPTOP-RKLCBQLO:/mnt/c/Users/tjmce/Desktop/Git/CS50w/Project 2/commerce$ python3 -c "import django; print (django.__file__)" Traceback(最近一次调用最后):文件“”,第 1 行,在 文件“/mnt/c/Users/tjmce/Desktop/Git/CS50w/Project 2/commerce/ .venv/lib/python3.8/site-packages/django/__init__.py",第 1 行,在 from django.utils.version import get_version ModuleNotFoundError: No module named 'django.utils'
  • 所以你有 django 模块没有任何它应该有的子模块。然后在你的 PYTHONPATH 中的某个地方有一个 django.py 或 django.pyc ,而不是真正的 django。运行“pip uninstall django”并删除所有“django.py*”和“django/__init__.py”
  • 我刚刚删除了我的虚拟环境,因为我似乎无法从中卸载 Django,等待超过 5 分钟后似乎在 VSCode 中冻结了。将设置另一个虚拟环境并再次在那里安装 Django 并报告。再次感谢
  • 好的,在全新的虚拟环境中再次安装 Django 后,我得到了完全相同的错误。
【解决方案2】:

当您在 virtualenv 中不包含路径时会出现问题。

尝试在你的 vscode 上添加 python 的路径。 或者,尝试安装和卸载 Django 项目。

【讨论】:

    猜你喜欢
    • 2018-01-11
    • 2014-08-12
    • 2019-01-19
    • 2020-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-09
    • 2020-10-07
    相关资源
    最近更新 更多