Django是用Python编写的吗?

2024-10-03 15:31:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我在运行Django时遭受了segmentation fault(这只是测试服务器的简单代码)

在我看来,Django是用Python编写的。在

我想确保如果Django只使用python而没有{}或其他可以生成分段错误的东西来编写,这样我就可以说,分段错误是由于Python interpreter本身造成的。在

Django只使用python编写?在

-----Eidt---------

其他一些python包直接在包中导入C库,例如lxmlcx_Oracle。在

因此,即使我完美地安装了python,它在访问第三部分wrong C libraries时也会出现分段错误。在

我的问题是,如果我完美地安装python,Django就不会产生分段错误?在

因为Django只在python解释器上运行,不能直接访问第三方C库。在

我怀疑在安装Python而不是django时一定出了问题


Tags: django代码服务器libraries错误解释器lxmloracle
2条回答

Django只是Python,它没有C代码。它的某些部分使用C语言有依赖关系,例如GeoDjango有用C编写的依赖项

添加

import faulthandler
faulthandler.enable()

到Django设置文件,并希望它打印一个堆栈跟踪,显示崩溃发生的位置。见this blog post。在

Edit:当然,如果您不使用python3.3或更新版本,这确实需要pip install faulthandler

It is just simple code with test server

Django本身完全是用python编写的(外加少量javascript和shell脚本)。在

django真的是唯一安装的python包吗?它很少是,即使是简单的网站。在

但是,许多通过pip安装的包不是纯python(例如mysqlclient-python:64%python/36%C代码)。即使包纯python,它也可以使用ctypes直接调用C库(例如mysql-ctypes包)。在

即使有一个没有bug的解释器,链接C库(例如libmysql)中的bug或包含/interfaces与C代码的python包中的bug也会导致segfault。在

相关问题 更多 >