8

当我执行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'

我该如何处理这种情况?

4

3 回答 3

7

看起来它希望您的系统上存在 id 为 65530 的用户,但事实并非如此。它通过调用os.getuid()返回当前用户 ID 来获取该 ID。

也许您正在运行它的用户在此期间已被删除或禁用?检查/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']
于 2012-05-20T10:46:28.900 回答
2

我也遇到过这个问题。在网上稍微搜索了一下,我得到了修复。检查您的环境变量 PYTHONHOME。

尝试取消设置 PYTHONHOME 并尝试。它对我有用。

(参考:https ://software.intel.com/en-us/forums/intel-fortran-compiler-for-linux-and-mac-os-x/topic/532383 )

于 2016-05-10T07:09:37.507 回答
0

如果您从 apache 上的 mod_wsgi 收到此错误(在您的应用程序错误日志中),则修复是在您的 wsgi.conf 中将“home=/path/to/app”添加到您的 WSGIDaemonProcess 指令中(在哪里并不重要)您将路径设置为)。例如 -

WSGIDaemonProcess ckan_default display-name=ckan_default processes=2 threads=15 home=/usr/lib/ckan/default
于 2016-09-15T21:09:08.717 回答