python导入网站失败

时间:2012-05-20 10:41:58

标签: python import

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

我该如何处理这种情况?

3 个答案:

答案 0 :(得分:7)

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

在此期间,您运行此功能的用户可能已被删除或停用?查看/etc/passwd了解线索。


根据您的评论进行更新:您的chroot监狱内显然不存在/etc/passwd。您可以尝试将其映射到其中,也可以将HOME环境变量设置为合理的值,因为expanduser的代码表示:

    if 'HOME' not in os.environ:
        import pwd
        userhome = pwd.getpwuid(os.getuid()).pw_dir
    else:
        userhome = os.environ['HOME']

答案 1 :(得分:2)

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

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

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

答案 2 :(得分:0)

如果你从apache上的mod_wsgi中得到这个错误(在你的应用程序错误日志中),那么FIX就是将“home = / path / to / app”添加到wsgi.conf中的WSGIDaemonProcess指令中(这没关系)你设置路径的地方)。例如 -

WSGIDaemonProcess ckan_default display-name=ckan_default processes=2 threads=15 home=/usr/lib/ckan/default