安装 uwsgi(此路不通)

https://blog.csdn.net/u010397519/article/details/97000446

  1. pip install uwsgi # 安装
  2. uwsgi --version # 插件安装版本

AttributeError: module ‘os’ has no attribute ‘uname’

问题原因

在 Windows 上使用 pip 安装 uwsgi 会遇到这个问题。
是因为 uwsgiconfig.py 文件中,os.uname() 是不支持 Windows 系统导致的。

解决方法

  1. 离线下载 uwsgi:https://pypi.org/project/uWSGI/#files
  2. 替换以下代码: ```python

    被替换(从第5行开始)

    import os import re import time uwsgios = os.uname()[0] uwsgi_os_k = re.split(‘[-+]’, os.uname()[2])[0] uwsgi_os_v = os.uname()[3] uwsgi_cpu = os.uname()[4]

替换成(从第5行开始)

import os import re import time import platform uwsgios = platform.uname()[0] uwsgi_os_k = re.split(‘[-+]’, platform.uname()[2])[0] uwsgi_os_v = platform.uname()[3] uwsgi_cpu = platform.uname()[4]

  1. 3. 保存后进入 uwsgi 目录,运行 `python setup.py install`
  2. 4. 如果提示 `Exception: you need a C compiler to build uWSGI` 可参考此小标题并安装 C 编译环境
  3. 5. 安装完成后再次运行 `python setup.py install`
  4. <a name="YPymY"></a>
  5. ## Exception: you need a C compiler to build uWSGI
  6. 本机上没有 C 编译环境,需要下载一个编译器,推荐MinGW
  7. <a name="Gtp0j"></a>
  8. ### 线上安装 MinGW-w64
  9. > [https://zhuanlan.zhihu.com/p/76613134](https://zhuanlan.zhihu.com/p/76613134)
  10. 1. 下载地址:[https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/installer/mingw-w64-install.exe/download](https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/installer/mingw-w64-install.exe/download)
  11. 2. 打开安装程序,下一步,出现选项时按以下填写(Windows x64),完成后一直下一步:![image.png](https://cdn.nlark.com/yuque/0/2021/png/2701725/1634190597806-45829168-1785-4195-866d-3046edf8d2a9.png#clientId=u22938325-915b-4&from=paste&height=396&id=u85f57970&originHeight=396&originWidth=539&originalType=binary&ratio=1&size=20212&status=done&style=none&taskId=ua3cc1210-7be1-4714-8119-e669143329c&width=539)
  12. 3. 如果 Downloading file... 时间过长可以通过以下方式自行安装
  13. <a name="sDwzd"></a>
  14. ### 自行安装 MinGW-w64
  15. > [https://zhuanlan.zhihu.com/p/76613134](https://zhuanlan.zhihu.com/p/76613134)
  16. 1. 下载地址:[https://www.jb51.net/softs/696088.html#downintro2](https://www.jb51.net/softs/696088.html#downintro2)
  17. 2. 解压文件到安装目录
  18. 3. 复制安装目录下,`bin` 文件夹地址
  19. 4. 添加到 PATH 环境变量:
  20. 1. 右键“计算机”-> 属性 -> 高级系统设置 -> 高级 -> 环境变量
  21. 2. 用户变量 -> PATH -> 编辑
  22. 3. 最后输入 `;` + `bin` 文件夹地址
  23. 4. 一路确定
  24. 5. 重新打开 Powershell,输入 `gcc -v` 查看是否成功
  25. <a name="X9Gp9"></a>
  26. ### 自行安装 Cygwin(官方推荐)
  27. > [https://uwsgi-docs.readthedocs.io/en/latest/SupportedPlatforms.html?highlight=windows](https://uwsgi-docs.readthedocs.io/en/latest/SupportedPlatforms.html?highlight=windows)
  28. > [https://blog.csdn.net/lvsehaiyang1993/article/details/81027399](https://blog.csdn.net/lvsehaiyang1993/article/details/81027399)
  29. 1. 下载地址:[http://www.cygwin.com/setup-x86_64.exe](http://www.cygwin.com/setup-x86_64.exe)
  30. 2. 选择 直接连接,不选 Proxy
  31. 3. 在镜像源列表中可添加:`https://mirrors.aliyun.com/cygwin`(参考:[https://cygwin.com/mirrors.html](https://cygwin.com/mirrors.html))
  32. 4. 选中源后下载,安装选 ALL
  33. <a name="i5bdy"></a>
  34. ## fatal error: <sys/socket.h>: No such file or directory
  35. > [https://stackoverflow.com/questions/25736266/fatal-error-sys-socket-h-no-such-file-or-directory-x86-64-w64-mingw32-mode](https://stackoverflow.com/questions/25736266/fatal-error-sys-socket-h-no-such-file-or-directory-x86-64-w64-mingw32-mode)
  36. 替换成 `winsock2.h`
  37. <a name="gWY65"></a>
  38. # Windows + Nginx 最简单部署
  39. 1. 程序目录下:`python mange.py runserver`
  40. 2. `nginx.conf` 设置代理:
  41. ```nginx
  42. server {
  43. listen 8000;
  44. server_name localhost;
  45. location / {
  46. proxy_pass http://127.0.0.1:8000;
  47. proxy_read_timeout 600;
  48. proxy_set_header Host $host;
  49. proxy_set_header X-Real_IP $remote_addr;
  50. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  51. }
  52. }
  1. 开启防火墙规则 8000 端口
  2. 通过 IP + 8000 端口即可访问