Python(Windows Server)Virtualenv无法识别Django已安装

时间:2019-06-24 17:41:13

标签: python django virtualenv windows-server-2012-r2 python-venv

我的虚拟环境拒绝(奇怪地)拒绝识别我安装的Django

我在Windows Server上,将Python 3.7安装到Windows路径中有$stmt = $mysqli->prepare($sql); $stmt -> bind_param("s" $_GET['q']); $stmt -> execute(); $stmt -> store_result(); $stmt -> bind_result($name, $grade, $person, $date, $color); $stmt -> fetch(); #stmt -> close(); 的目录(C:\Python37)中,因此在使用Powershell或GitBash时,我可以使用C:\Python37;C:\Python37\Scripts命令。

如果我运行python,则会显示默认安装

我将CD放入django项目目录并运行: where python并创建venv目录

然后我运行python virtualenv venv,它会适当激活。

当我运行source venv/Scripts/activate时,它会显示where python目录中的exe-这是预期的和适当的。

我运行venv,并且我的所有要求都已正确安装。我确认它们已安装pip install -r requirements.txt(均已正确安装)

一旦这样做,我就开始运行pip freeze(在此特定实例中不需要迁移),我收到一条错误消息,提示未安装Django。

要进行检查,请在我的virtualenv仍处于激活状态的情况下输入外壳程序(python manage.py collectstatic

如果我执行python,它还会说未安装Django。

我不知道这里发生了什么-python版本似乎是正确的,已激活了正确的virtualenv-但它仍然没有看到正确安装的Django安装。

有什么想法吗?想法?

1 个答案:

答案 0 :(得分:0)

对于它的价值-这里是解决方案和解释:

一切正常,如问题中所概述的那样-实际的python命令不起作用的原因与.bashrc文件中的一行有关。

.bashrc文件中有一个别名,用于将python设置为命令winpty C:\Python37\python

因此,当命令python manage.py collectstatic运行时-它正在查看Python37目录中的Python可执行文件,而不是虚拟环境Python。

这可以通过简单地运行适当的Python(例如)来解决 C:/my_project/venv/Scripts/python manage.py collectstatic

这迫使它使用virtualenvironment python来运行命令,以便一切正常进行。