我的虚拟环境拒绝(奇怪地)拒绝识别我安装的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安装。
有什么想法吗?想法?
答案 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来运行命令,以便一切正常进行。