【发布时间】:2021-09-14 19:27:49
【问题描述】:
我已经更新了我的服务器,现在我在 Django 下的网站出现了问题。
ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: cannot allocate memory in static TLS block
...
[Sat Jul 03 00:50:56.975729 2021] [wsgi:error] [pid 5009] [client 93.21.219.190:57598] File "Django-2.1/django/db/backends/mysql/base.py", line 15, in <module>
[Sat Jul 03 00:50:56.975744 2021] [wsgi:error] [pid 5009] [client 93.21.219.190:57598] import MySQLdb as Database
[Sat Jul 03 00:50:56.975766 2021] [wsgi:error] [pid 5009] [client 93.21.219.190:57598] File "/usr/local/lib/python3.8/dist-packages/MySQLdb/__init__.py", line 24, in <module>
[Sat Jul 03 00:50:56.975805 2021] [wsgi:error] [pid 5009] [client 93.21.219.190:57598] version_info, _mysql.version_info, _mysql.__file__
[Sat Jul 03 00:50:56.975850 2021] [wsgi:error] [pid 5009] [client 93.21.219.190:57598] NameError: name '_mysql' is not defined
我找到了一些解决方案,但没有任何效果。
我已经重新安装了 mod_wsgi 和 mysqlclient :
pip3 install mod_wsgi
pip3 install mysqlclient
wsgi 链接到 libpython3.8 和 _mysql.cpython-38-x86_64-linux-gnu.sois 链接到
ldd /usr/lib/apache2/modules/mod_wsgi.so
linux-vdso.so.1 (0x00007ffff394b000)
libpython3.8.so.1.0 => /usr/lib/x86_64-linux-gnu/libpython3.8.so.1.0 (0x00007f6a1fa15000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f6a1f9f3000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f6a1f82e000)
libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007f6a1f7ff000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f6a1f7e2000)
libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x00007f6a1f7a7000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f6a1f79f000)
libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007f6a1f79a000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f6a1f656000)
/lib64/ld-linux-x86-64.so.2 (0x00007f6a1ffc9000)
ldd /usr/local/lib/python3.8/dist-packages/MySQLdb/_mysql.cpython-38-x86_64-linux-gnu.so
linux-vdso.so.1 (0x00007ffccf18f000)
libmysqlclient.so.21 => /usr/lib/x86_64-linux-gnu/libmysqlclient.so.21 (0x00007efe00610000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007efe0044b000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007efe00429000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007efe00423000)
libssl.so.1.1 => /usr/lib/x86_64-linux-gnu/libssl.so.1.1 (0x00007efe00391000)
libcrypto.so.1.1 => /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 (0x00007efe000a5000)
libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007efe00089000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007efe0007e000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007efdffeb1000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007efdffd6d000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007efdffd53000)
/lib64/ld-linux-x86-64.so.2 (0x00007efe00d2c000)
ls /usr/lib/x86_64-linux-gnu/libmysqlclient.so.21
/usr/lib/x86_64-linux-gnu/libmysqlclient.so.21
ls -l /usr/bin/python3
lrwxrwxrwx 1 root root 18 juil. 2 23:19 /usr/bin/python3 -> /usr/bin/python3.8
如果我运行 django shell,我可以导入 mysqldb:
python3 manage.py shell
import MySQLdb as Database
Here I can query the database with Model.objects.filter(...)
总结:从 django shell 可以正常工作,从 apache2 不能正常工作。我不明白发生了什么:/
【问题讨论】: