移动目录后Django无法正常工作。我是否有路径/ Python安装问题?

时间:2017-11-10 20:20:34

标签: python django

背景:我在我的Mac上安装了Python 3.5.2(已经包含2.7.10)并且显然已经并排运行这两个安装而没有任何明显的问题。一切正常,直到我将项目文件夹移动到其他地方,然后当我尝试做任何事情时,我得到以下错误:

Traceback (most recent call last): File "manage.py", line 8, in <module> from django.core.management import execute_from_command_line ImportError: No module named django.core.management

我的常规设置工作流程如下:

  • 使用manage.py
  • 在包含Django项目文件夹的目录中安装虚拟环境(不是包含python3 -m venv <venv-name>的目录 - 一级以上)
  • 激活虚拟环境并安装Django,Pillow,无论我需要什么项目。

我知道我错过了一些东西,因为我认为虚拟环境的工作方式是你在本地安装它们,然后只要所有这些都伴随着你的项目文件夹,一切都会好的。但是当我移动目录时,一切都停止工作,如果我将其移回去,它会再次起作用。

任何人都可以根据这个问题告诉我我在这里遇到什么样的问题?这只是正常的行为,我只需要习惯不移动Django项目文件夹吗?

更新:如果我删除虚拟环境文件夹并在文件夹位于新位置后重新安装它,一切似乎都能正常工作。我想这是创建虚拟环境和我的Python安装的某种链接的一些问题?我不知道。

2 个答案:

答案 0 :(得分:1)

最新回应,但我想为这个问题分配解决方法。多亏了Thomas的回应,我通过查看激活脚本了解了问题所在。因此,就我而言,还原原始路径并按照以下步骤操作会更容易:

  1. 在移动项目之前并激活虚拟环境

    pip freeze > requirements.txt

  2. 然后停用环境并将其删除

    deactivate
    rm -rf .env

  3. 将项目移至所需目录

  4. 生成一个新的新虚拟环境并激活它

    python3 -m venv .env
    source .env/bin/activate

  5. 安装依赖项

    pip install -r requirements.txt

答案 1 :(得分:0)

盲目猜测:

1)您是否激活了虚拟环境?听起来manage.py无法找到django安装。

2)是否已安装环境Django?

3)你移动env本身吗? 生成的activate - 脚本中包含硬编码(我的:例如VIRTUAL_ENV="/home/thomas/Intevation/env")路径。我建议制作一个新的环境并在那里安装它。

我鼓励人们使用:Pipenv

回溯是一个明确的指标,无论manage.py看起来是什么,都没有安装django