Squeak.ru - шаблоны программирования

сайт импорта python не удалось

Когда я запускаю скрипт Python, возникает эта проблема:

'import site' failed; use -v for traceback

поэтому я попробовал еще раз с опцией -v, и я могу получить эти сообщения:

'import site' failed; traceback:
Traceback (most recent call last):
  File "/usr/lib/python2.6/site.py", line 513, in <module>
    main()
  File "/usr/lib/python2.6/site.py", line 495, in main
    known_paths = addusersitepackages(known_paths)
  File "/usr/lib/python2.6/site.py", line 238, in addusersitepackages
    USER_BASE = env_base if env_base else joinuser("~", ".local")
  File "/usr/lib/python2.6/site.py", line 225, in joinuser
    return os.path.expanduser(os.path.join(*args))
  File "/usr/lib/python2.6/posixpath.py", line 256, in expanduser
    userhome = pwd.getpwuid(os.getuid()).pw_dir
KeyError: 'getpwuid(): uid not found: 65530'

Как я могу справиться с этими ситуациями?

20.05.2012

  • Я получил эту ошибку при запуске скрипта Python в качестве службы systemd с DynamicUser=yes 01.06.2017

Ответы:


1

Похоже, он ожидает, что в вашей системе существует пользователь с идентификатором 65530, но это не так. И он получает этот идентификатор, вызывая os.getuid(), который возвращает текущий идентификатор пользователя.

Возможно, пользователь, от имени которого вы работаете, был тем временем удален или отключен? Проверьте /etc/passwd на наличие подсказок.


Обновление в свете вашего комментария: по-видимому, /etc/passwd не существует внутри вашей тюрьмы chroot. Либо вы можете попробовать сопоставить его, либо вы можете установить переменную среды HOME на что-то разумное, как говорит код для expanduser:

    if 'HOME' not in os.environ:
        import pwd
        userhome = pwd.getpwuid(os.getuid()).pw_dir
    else:
        userhome = os.environ['HOME']
20.05.2012
  • Я выполняю этот скрипт Python с chrooted. 20.05.2012
  • Я прокомментировал этот блок и просто поставил userhome = '/' и эта ошибка исчезла, большое спасибо :) 20.05.2012
  • Вы взломали стандартную библиотеку общесистемной установки Python, да еще таким ужасным образом?! Я советую вернуть это прямо сейчас, прежде чем сделать вашу систему непригодной для использования. Мой ответ содержит две лучшие альтернативы. 20.05.2012

  • 2

    Я тоже столкнулся с этой проблемой. Немного поискав в сети, я нашел исправление. Проверьте переменную среды PYTHONHOME.

    Попробуйте отключить PYTHONHOME и попробуйте. Это сработало для меня.

    (Ссылка: https://software.intel.com/en-us/forums/intel-fortran-compiler-for-linux-and-mac-os-x/topic/532383)

    10.05.2016

    3

    Если вы получаете эту ОШИБКУ от mod_wsgi в apache (в журнале ошибок вашего приложения), ИСПРАВЛЕНИЕ состоит в том, чтобы добавить «home=/path/to/app» в вашу директиву WSGIDaemonProcess в вашем wsgi.conf (не имеет большого значения, где вы указываете путь к). Например--

    WSGIDaemonProcess ckan_default display-name=ckan_default processes=2 threads=15 home=/usr/lib/ckan/default
    
    15.09.2016
  • Случай с mod_wsgi отличается, и это не та же основная проблема. Какую версию mod_wsgi вы используете? Возможно, это имело место для очень старых версий mod_wsgi, но я не уверен, что это правда (не помню) для последних версий. 16.09.2016
  • Новые материалы

    Async Await в Swift: легкое управление параллелизмом
    Введение в запуск асинхронного кода Асинхронный код выполняет несколько операций одновременно. Параллелизм необходим при выполнении тяжелых вычислений или сетевых запросов. Однако это может..

    Очистить файлы Program .cache в Ubuntu 20.10
    Очистите кеш за несколько простых шагов! GNU / Linux реализовал эффективное управление хранилищем для своих пользователей. Но заметили ли вы, что в вашей системе Linux заканчивается место,..

    Использование Node.js для чтения действительно больших файлов (часть 1)
    В этом сообщении в блоге есть интересный источник вдохновения. На прошлой неделе кто-то на одном из моих каналов в Slack опубликовал тестовое задание, которое он получил на должность..

    Введение в градиентный спуск и обратное распространение
    Введение в градиентный спуск и обратное распространение Как машинное обучение? Машинное обучение ( ML ) - это исследование компьютерных алгоритмов, которые автоматически улучшаются по..

    Шаблон CQRS — C#
    Этот архитектурный шаблон в основном говорит о том, что мы можем использовать одну модель для операций чтения, а другую — для операций записи. Звучит хорошо, но реализовать его может быть..

    Освоение функций потерь в машинном обучении для регрессии: полное руководство по оптимизации…
    Введение: Функция потерь является важным компонентом алгоритмов машинного обучения и статистических моделей. Его роль заключается в измерении несоответствия между прогнозируемым выходом модели и..

    10 языков программирования, которые изменят мир в 2023 году
    Мир программирования постоянно развивается, и востребованные языки постоянно меняются. Однако есть несколько языков, которые выдержали испытание временем и по-прежнему очень ценны для изучения в..