2015-09-22 4 views
0
import sys 
import os 
import logging 

# need to add environment to apache's path for includes 
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "../../"))) 
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "../"))) 
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "."))) 
# likewise add cherrypy/other modules 
sys.path.append(os.path.abspath("/Library/Python/2.7/site-packages/")) 

import requests 
response = requests.get('http://www.google.com').text 

Использование Python 2.7.6, запросов 2.7.0 и Apache под MAMP 3.0, приведенный выше код сбой. Быстрый просмотр кода с помощью winpdb, по-видимому, предполагает, что на самом деле попытка открыть интернет-соединение - это то, что разрушает процесс Python. Журнал Apache не очень полезно, только говорязапрашивает segfaults при встраивании в wsgi, но не в автономном режиме

[notice] child pid 18879 exit signal Segmentation fault (11) 

Хотя мой полный код использует CherryPy 3,8, чтобы обеспечить WSGI часть рамки, я чувствую, что это не имеет никакого отношения к проблеме.

Это известная проблема с запросами + apache, или это какая-то другая проблема? Сбой Python без каких-либо комментариев затрудняет мне даже думать о том, как начать решение этой проблемы.

EDIT: Используя pdb, я обнаружил, что программа segfaults в строке 1421 urllib.py в стандартной библиотеке python.

proxy_settings = _get_proxy_settings() 

где _get_proxy_settings происходит от _scproxy.

Я до сих пор не знаю, как это исправить.

ответ

0

Кажется, что это ошибка для платформы для моей версии MacOS.