AttributeError: объект «модуль» не имеет атрибута «pydebug» на хосте мечты после обновления сервера

У меня есть эта ошибка на общем сервере dreamhost с пользовательской установкой python. Я использовал это руководство для установки несколько месяцев назад:

после обновления серверов dreamhost (до ubuntu 12.04) в эти выходные появилась эта ошибка:

Traceback (most recent call last):
  File "/usr/lib/python2.7/site.py", line 562, in <module>
    main()
  File "/usr/lib/python2.7/site.py", line 544, in main
    known_paths = addusersitepackages(known_paths)
  File "/usr/lib/python2.7/site.py", line 271, in addusersitepackages
    user_site = getusersitepackages()
  File "/usr/lib/python2.7/site.py", line 246, in getusersitepackages
    user_base = getuserbase() # this will also set USER_BASE
  File "/usr/lib/python2.7/site.py", line 236, in getuserbase
    USER_BASE = get_config_var('userbase')
  File "/usr/lib/python2.7/sysconfig.py", line 577, in get_config_var
    return get_config_vars().get(name)
  File "/usr/lib/python2.7/sysconfig.py", line 476, in get_config_vars
    _init_posix(_CONFIG_VARS)
  File "/usr/lib/python2.7/sysconfig.py", line 337, in _init_posix
    makefile = _get_makefile_filename()
  File "/usr/lib/python2.7/sysconfig.py", line 331, in _get_makefile_filename
    return os.path.join(get_path('platstdlib').replace("/usr/local","/usr",1), "config" + (sys.pydebug and "_d" or ""), "Makefile")
AttributeError: 'module' object has no attribute 'pydebug'

Я пробовал эти вещи и не работал:

  • Переустановите пользовательский питон
  • Изменить ПИТОНПУТЬ
  • Создайте нового пользователя в DreamHost для нового старта
  • Установите virtualenv без пользовательского python.

Я думаю, что проблема в пути к python, но я не знаю, как его изменить.

РЕДАКТИРОВАТЬ 1: я попытался установить собственный python с помощью --with-pydebug в команде ./configure. Не работало.


person Ignacio Cabeza    schedule 15.10.2014    source источник
comment
stackoverflow.com/questions/10641201 /   -  person Ricardo Cárdenes    schedule 15.10.2014


Ответы (1)


Просто поместите в файл passenger_wsgi.py эти строки

INTERP = cwd + "/env/bin/python"
if sys.executable != INTERP: 
    os.execl(INTERP, INTERP, *sys.argv)

вместо

#Switch to new python
if sys.version < "2.7.7": os.execl(cwd+"/env/bin/python", "python2.7", *sys.argv)

Это заставляет passenger_wsgi.py использовать интерпретатор python, установленный в файле virtualenv.

person Eugenio Canales Valenzuela    schedule 26.01.2015