Назад | Перейти на главную страницу

Как узнать, работает ли установка Python pip правильно или зависает?

Я пытаюсь установить пакет python pandas в virtualenv с помощью pip.

На моей машине разработки он установлен правильно, но теперь я пытаюсь использовать сервер, он заходит так далеко, что кажется, что он застрял:

 warnings.warn(LapackSrcNotFoundError.__doc__)
/apps/PYTHON/2.7.3/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'define_macros'
  warnings.warn(msg)
non-existing path in 'numpy/distutils': 'site.cfg'
non-existing path in 'numpy/lib': 'benchmarks'
Could not locate executable gfortran
Could not locate executable f95
Found executable /apps/modules/wrappers/fortran/ifort

Вверху показано, что ifort работает с 46% ЦП.

Могу ли я как-нибудь определить, правильно ли он работает (например, могу ли я проверить файлы, которые он обновляет), или застрял ли он в цикле?

Он работает уже 40 минут.

Получите pid (pidof process или top или psи т. д.) процесса и использования strace -p <pid>. Если вы видите, что он опрашивает или постоянно вызывает одни и те же системные вызовы снова и снова, это, вероятно, застряло в бесконечном цикле. Чтобы определить, застрял ли он в бесконечном цикле, вы должны использовать временные особенности strace (хотя это всего лишь предположение).

Если вы просто сделаете старый добрый strace -p <pid> вы действительно будете видеть только системные вызовы, но не данные, передаваемые между ними; чтобы увидеть эти данные, также укажите -s параметр. Если процесс разветвляется, вы не увидите ни одного из его дочерних элементов в strace, поэтому обязательно укажите -f чтобы увидеть, какие системные вызовы делают дети.

Вы также можете узнать, сколько времени проходит между системными вызовами; для этого вы можете использовать -tt и -r и -T. Если есть опрос, это может быть совершенно нормально, если он ожидает создания файла.