背景:我在我的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
python3 -m venv <venv-name>
的目录 - 一级以上)
我知道我错过了一些东西,因为我认为虚拟环境的工作方式是你在本地安装它们,然后只要所有这些都伴随着你的项目文件夹,一切都会好的。但是当我移动目录时,一切都停止工作,如果我将其移回去,它会再次起作用。
任何人都可以根据这个问题告诉我我在这里遇到什么样的问题?这只是正常的行为,我只需要习惯不移动Django项目文件夹吗?
更新:如果我删除虚拟环境文件夹并在文件夹位于新位置后重新安装它,一切似乎都能正常工作。我想这是创建虚拟环境和我的Python安装的某种链接的一些问题?我不知道。
答案 0 :(得分:1)
最新回应,但我想为这个问题分配解决方法。多亏了Thomas的回应,我通过查看激活脚本了解了问题所在。因此,就我而言,还原原始路径并按照以下步骤操作会更容易:
在移动项目之前并激活虚拟环境
pip freeze > requirements.txt
然后停用环境并将其删除
deactivate
rm -rf .env
将项目移至所需目录
生成一个新的新虚拟环境并激活它
python3 -m venv .env
source .env/bin/activate
安装依赖项
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
。