uwsgi+anaconda+django啓動問題的坑

記錄下今天遇到的一個uwsgi啓動django帶來的坑。歷經一下午終於找到了問題的原因。
多虧博主的博文。

問題:
按照正常的啓動方式啓動:uwsgi --ini uwsgi_soc.ini
但是報錯:


*** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** 
your server socket listen backlog is limited to 100 connections
your mercy for graceful operations on workers is 60 seconds
mapped 145776 bytes (142 KB) for 1 cores
*** Operational MODE: single process ***
Traceback (most recent call last):
  File "SOC/wsgi.py", line 12, in <module>
    from django.core.wsgi import get_wsgi_application
  File "/Users/zero/opt/anaconda3/lib/python3.7/site-packages/django/__init__.py", line 1, in <module>
    from django.utils.version import get_version
  File "/Users/zero/opt/anaconda3/lib/python3.7/site-packages/django/utils/version.py", line 1, in <module>
    import datetime
  File "/Users/zero/opt/anaconda3/lib/python3.7/datetime.py", line 8, in <module>
    import math as _math
ImportError: dlopen(/Users/zero/opt/anaconda3/lib/python3.7/lib-dynload/math.cpython-37m-darwin.so, 2): Symbol not found: _PyExc_MemoryError
  Referenced from: /Users/zero/opt/anaconda3/lib/python3.7/lib-dynload/math.cpython-37m-darwin.so
  Expected in: flat namespace
 in /Users/zero/opt/anaconda3/lib/python3.7/lib-dynload/math.cpython-37m-darwin.so
unable to load app 0 (mountpoint='') (callable not found or import error)
*** no app loaded. going in full dynamic mode ***

不管怎麼改配置都報這個錯,網上很多解答,但是沒有成功的。

這個問題的關鍵是:在anaconda 環境下安裝uwsgi:

pip install uwsgi

這個不行的,安裝成功,但是anaconda環境下使用就會出這個問題。

所以要在anaconda下使用uwsgi,請按照下面的方式去安裝:

anaconda search -t conda uwsgi

anaconda show conda-forge/uwsgi

conda install --channel https://conda.anaconda.org/conda-forge uwsgi 

用conda安裝uwsgi就可以了。這個應該和conda的環境有關係。開發的路上都是坑。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章