[英]Python (Windows Server) Virtualenv not recognizing Django is installed
我的虚拟环境拒绝识别我的Django安装(奇怪的是)
我在Windows Server上,将Python 3.7安装到目录( C:\\Python37
),该目录在Windows路径中具有C:\\Python37;C:\\Python37\\Scripts
,因此在使用Powershell或GitBash时可以使用python
命令。
如果我where python
运行where python
它将显示默认安装
我将CD放入django项目目录并运行: python virtualenv venv
并创建了venv目录
然后,我运行source venv/Scripts/activate
,它会适当激活。
当我where python
运行时where python
它会在venv
目录中显示venv
这是正常现象。
我运行pip install -r requirements.txt
并正确安装了所有需求。 我确认它们已经安装了pip freeze
(均已正确安装)
完成后,我将运行python manage.py collectstatic
(在此特定实例中无需迁移),我收到一条错误消息,提示未安装Django。
为了检查这一点,在我的virtualenv仍然被激活的情况下,我输入了shell( python
)
如果我确实import django
,它还说未安装Django。
我无法弄清楚这里发生了什么-python版本似乎是正确的,已激活了正确的virtualenv-但它仍然没有看到正确安装的Django安装。
有什么想法吗? 有想法吗?
为了它的价值,这是解决方案和解释:
一切都按问题中所概述的那样正常工作-实际python命令不起作用的原因与.bashrc
文件中的一行有关。
.bashrc
文件中有一个别名,用于将python
设置为命令winpty C:\\Python37\\python
因此,当执行命令python manage.py collectstatic
时,它正在查看Python37目录中的Python可执行文件,而不是virtualenvironment Python。
这可以通过简单地运行适当的Python(例如C:/my_project/venv/Scripts/python manage.py collectstatic
)解决: C:/my_project/venv/Scripts/python manage.py collectstatic
这迫使它使用virtualenvironment python运行命令,因此一切都按预期工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.