2016-07-29 1 views
-3

나는 segmentation fault 고통입니다. (그것은 테스트 서버와 단순한 코드)장고는 파이썬으로 만 쓰여졌습니까? <code>Django</code>을 실행하는 동안

내가 Python로 기록 Django에 대한 보면.

나는 있는지 확인하려면 그 Django이 나는 ​​세그먼트 오류 자체 때문에 Python interpreter의 말할 수 있도록 세그먼트 오류를 ​​생성 할 수있는 C libraries 또는 무언가하지 않고 단지 python로 작성된 경우.

Djangopython와 함께 쓰여 있습니까?

는 ------- Eidt는

다른 어떤 파이썬 패키지는 예를 lxml, cx_Oracle의 패키지에 직접 C 라이브러리를 가져 --------.

결과적으로 파이썬을 완벽하게 설치하더라도 세 번째 부분에 액세스하는 세그먼트 오류가 발생할 수 있습니다. wrong C libraries.

내 질문은 내가 완벽하게 파이썬을 설치하면 Django는 세그먼테이션 오류를 생성하지 않는다는 것입니다.

Django은 파이썬 인터프리터에서만 실행되므로 3 부 C 라이브러리에 직접 액세스하지 않습니다.

는 파이썬 장고하지 설치하는 동안 뭔가 잘못이 있어야한다는 의심입니다.

+1

Python으로 작성된 경우에도 Python의 C 구현을 사용하고 있습니까? 대부분 있습니다. 분할 오류는 파이썬에서는 극히 드물지만 외부 C 라이브러리를 직접 사용하는 경우가 많습니다. 예를 들어, 32 비트와 64 비트를 혼합하고 있습니까? – cdarke

+1

실제로 문제를 해결하는 데 도움이되지는 않겠지 만 해결해야 할 실제 문제에 대해 물어보아야합니다 – Sayse

+0

파이썬으로 작성된 모든 것은 궁극적으로 C에서 "작성"됩니다. 파이썬 자체가 C로 작성 되었기 때문입니다 버그 관련 질문이 있으면 [MCVE] (http://stackoverflow.com/help/mcve)를 작성하거나 django 프로젝트에 직접 버그 리포트를 제출하십시오. – ray

답변

2

그것은

장고 자체는 테스트 서버와 단순한 코드 전적으로 파이썬 (플러스 소량의 자바 스크립트와 쉘 스크립트)로 작성된.

django는 실제로 설치된 유일한 python 패키지입니까? 단순한 사이트 일 경우조차 거의 존재하지 않습니다.

그러나 pip를 통해 설치된 많은 패키지는 순수한 파이썬이 아닙니다 (예 : mysqlclient-python : 64 % python/36 % C 코드). 패키지가 순수 Python이라해도 ctypes을 사용하여 C 라이브러리를 직접 호출 할 수 있습니다 (예 : mysql-ctypes 패키지).

버그가없는 인터프리터가 있어도 연결된 C 라이브러리 (예 : libmysql)의 버그 또는 C 코드와/인터페이스가 포함 된 python 패키지가 segfault를 일으킬 수 있습니다.

1

장고는 더 C 코드가없는, 단지 파이썬이다 (I는 AIX에서 파이썬을 설치하려합니다). 그것의 어떤 부분은 C를 사용하기위한 의존성을 가지고 있습니다. GeoDjango은 장고 설정 파일에

import faulthandler 
faulthandler.enable() 

추가 C.

작성 의존성이 있고, 희망이 충돌이 일어나고있는 곳을 보여줍니다 스택 트레이스를 출력합니다. this blog post을 참조하십시오.

편집 : 파이썬 3.3을 사용하지 않는 경우이 물론 pip install faulthandler로 요구하는 것은 새로운/