gpt4 book ai didi

python - 将 uwsgi 与 django 一起使用时出现导入错误(找不到符号 : __PyInt_AsInt)

转载 作者:行者123 更新时间:2023-12-03 20:20:37 24 4
gpt4 key购买 nike

我试过寻找修复方法,但没有找到。对不起,如果这个问题存在于其他地方。

我正在关注 http://uwsgi-docs.readthedocs.org/en/latest/tutorials/Django_and_nginx.html ,目前正在尝试确保 django 与 uWSGI 一起使用。我正在尝试运行 uWSGI --http-socket :8000 --module mysite.wsgi ,但得到:

Traceback (most recent call last):
File "./mysite/wsgi.py", line 13, in <module>
from django.core.wsgi import get_wsgi_application
File "/anaconda/lib/python2.7/site-packages/django/core/wsgi.py", line 2, in <module>
from django.core.handlers.wsgi import WSGIHandler
File "/anaconda/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 3, in <module>
import cgi
File "/anaconda/lib/python2.7/cgi.py", line 50, in <module>
import mimetools
File "/anaconda/lib/python2.7/mimetools.py", line 6, in <module>
import tempfile
File "/anaconda/lib/python2.7/tempfile.py", line 32, in <module>
import io as _io
File "/anaconda/lib/python2.7/io.py", line 51, in <module>
import _io
ImportError: dlopen(/anaconda/lib/python2.7/lib-dynload/_io.so, 2): Symbol not found: __PyInt_AsInt
Referenced from: /anaconda/lib/python2.7/lib-dynload/_io.so
Expected in: dynamic lookup

我已经遇到了 uWSGI 没有使用正确安装的问题。 uwsgi 会尝试使用 /usr/local/bin/uwsgi 尽管
which uwsgi
//anaconda/bin/uwsgi

,导致 No such file or directory 。目前,我设置 uWSGI="//anaconda/bin/uwsgi" 来解决问题并使 uwsgi 工作,但我怀疑可能会发生类似的问题。我认为它可能试图使用 /usr/bin/python 而不是 /anaconda/bin/python ,并且它无法从 anaconda 导入,从而导致错误。但是,我不确定如何修复它/确认这是问题所在,任何建议将不胜感激。

谢谢!

编辑:我也尝试过使用所有当前安装的 python 版本的 import _io,没有问题。 brew unlink python 帮助处理了 uwsgi 问题的 anaconda 版本冲突(最初用别名修复,如上所述),但这个问题仍然存在。

编辑:从 $PATH 中删除 anaconda,然后重新安装/取消链接/链接 django、openssl 和 libxml2“有效”。我很快就会发现这是否会在后面的步骤中导致问题,但我仍然不知道 anaconda 安装发生了什么。自从我使用 scipy/numpy/etc 以来,我真的很想弄清楚发生了什么。非常频繁,所以这绝对是一个临时修复。有任何想法吗?

最佳答案

我刚刚在尝试使用 django 项目在我的 mac 上运行 uwsgi 时遇到了这个问题uwsgi --http :9090 --module uwsgi_django_project.wsgi(在这种情况下,我的 django 项目被命名为 uwsgi_django_project )
来自 uwsgi 的堆栈跟踪是

Traceback (most recent call last):
File "./uwsgi_django_project/wsgi.py", line 12, in <module>
from django.core.wsgi import get_wsgi_application
File "/opt/anaconda3/envs/django_uwsgi_39/lib/python3.8/site-packages/django/__init__.py", line 1, in <module>
from django.utils.version import get_version
File "/opt/anaconda3/envs/django_uwsgi_39/lib/python3.8/site-packages/django/utils/version.py", line 1, in <module>
import datetime
File "/opt/anaconda3/envs/django_uwsgi_39/lib/python3.8/datetime.py", line 8, in <module>
import math as _math
ImportError: dlopen(/opt/anaconda3/envs/django_uwsgi_39/lib/python3.8/lib-dynload/math.cpython-38-darwin.so, 2): Symbol not found: _PyExc_MemoryError
Referenced from: /opt/anaconda3/envs/django_uwsgi_39/lib/python3.8/lib-dynload/math.cpython-38-darwin.so
Expected in: flat namespace
in /opt/anaconda3/envs/django_uwsgi_39/lib/python3.8/lib-dynload/math.cpython-38-darwin.so
unable to load app 0 (mountpoint='') (callable not found or import error)

除了 Symbol not found: _PyExc_MemoryError 之外,与 OP 得到的错误非常相似。
我已经通过 pip 在我的 conda 环境中安装了 uwsgi,显然通过 pip 安装的包和 anaconda 环境的 python 之间存在不兼容。
解决方案是从我的环境中删除 uwsgi pip uninstall uwsgi并使用 anaconda 安装它 conda install -c conda-forge uwsgi执行此操作并使用我的 django 应用程序运行 uwsgi 后,它运行良好。
归功于这个 blog,我在这里找到了我的问题的解决方案,这可能会解决很多与 uwsgidjango 类似的问题

关于python - 将 uwsgi 与 django 一起使用时出现导入错误(找不到符号 : __PyInt_AsInt),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27883469/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com