2013-07-16 2 views
3

У меня есть сайт Django (1.5.1), работающий на Python 2.7.3 в virtualenv на PythonAnywhere. Насколько я помню, все хорошо работало. В последнее время, хотя я ничего не изменилось за исключением некоторых Джанго кода, я получаю следующее сообщение, когда я бегу pip:PythonAnywhere + virtualenv: «Не удалось найти библиотеки, зависящие от платформы <exec_prefix> ...»

(venv)11:34 ~ $ pip 
Could not find platform dependent libraries <exec_prefix> 
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>] 
Traceback (most recent call last): 
    File "/*~*//venv/bin/pip", line 5, in <module> 
    from pkg_resources import load_entry_point 
    File "/*~*//venv/lib/python2.7/site-packages/distribute-0.6.34-py2.7.egg/pkg_resources.py", line 16, in <module> 
    import sys, os, zipimport, time, re, imp, types 
ImportError: No module named time 

Излишне говорить, что pip не работает вообще после получения указанной выше ошибки.

Когда я бегу python с virtualenv активированной, я снова получаю следующее сообщение об ошибке:

(venv)11:34 ~ $ python 
Could not find platform dependent libraries <exec_prefix> 
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>] 
Python 2.7.3 (default, Apr 29 2013, 15:12:04) 
[GCC 4.4.5] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
Traceback (most recent call last): 
    File "/*~*//.pythonstartup.py", line 1, in <module> 
    import rlcompleter 
ImportError: No module named rlcompleter 
>>> 

Но, после этого, консоль Python, как представляется, в рабочем состоянии.

Без активации virtualenv python работает нормально, без ошибок.

Все было хорошо пару недель назад, когда я последний раз бежал pip и установил некоторые пакеты, но теперь pip не работает, хотя все функции моего Django работают нормально. Я ценю любые идеи, которые могли бы вернуть pip.

ответ

5

Там определенно что-то подозрительное происходит, если он не может найти модуль time - насколько я знаю, что модуль фактически встроен в сам бинарный файл Python, так что это не так, если есть time.py или time.so файл, который может были удалены. Похоже, что либо Python в вашем virtualenv каким-то образом сломался, либо что-то об окружающей среде, которая его испортила.

Задание сомнительной переменной PYTHONHOME может вызвать у Python всевозможные проблемы, поскольку он не может найти необходимые файлы, но я думаю, что в этом случае виртуальный пользователь стал сломанным. На самом деле, я просто попробовал старый virtualenv на PythonAnywhere и получил ту же проблему. Похоже, что символические ссылки, создаваемые virtualenv, были разбиты в результате обновления, возможно, недавнего обновления от Debian до Ubuntu.

Если вообще возможно, я просто заново создаю новый virtualenv и запускаю вещи оттуда. В принципе вы можете использовать pip для записи файла требований, чтобы вы могли создать новый virtualenv с точно такими же версиями кода, но проблема в том, что вы не можете запустить pip для создания этого файла, QED. Вероятно, есть умный способ использования системы Python для запуска pip и получения зависимостей от вашего virtualenv, но это будет сложно: это не так, чтобы работать таким образом.

В качестве альтернативы вы можете обратиться к разработчикам PA - я знаю, что у некоторых пользователей были проблемы с их виртуальными окнами во время обновления, и у них могут быть хитрые сценарии, которые могут решить проблему. Даже если вы просто создадите новый virtualenv и будете использовать его, я бы связался с ними и убедился, что они знают об этой проблеме, поэтому они знают об этом для будущих обновлений.

+0

+1 к предложению Cartroo повторно воссоздать новый virtualenv. мы попытались исправить большинство ошибок virtualenv, которые появились с помощью переключателя ubuntu, но не смогли выбить все из них ... – hwjp

2

У меня это случилось со мной сегодня днем. Я обновил с Mint 14 до Mint 15, и кажется, что системный питон на первом является 2.7.3, а последний использует 2.7.4. Я исправил это, удалив мой virtualenv (который использовал python 2.7.3), а затем воссоздал его с помощью python 2.7.4.

Проверьте мои quick screencast.В ней я показываю, что:

  • среда питон сломана
  • воссоздания питона окр делает его работу
0

я получаю эту ошибку это day.Because я использую virtualenv, и введите это, но, мой сценарий python все еще содержит это #!/usr/bin/python2.6 удалить это предложение будет