python导入网站失败

use*_*957 8 python import

当我执行python脚本时,会出现此问题:

'import site' failed; use -v for traceback
Run Code Online (Sandbox Code Playgroud)

所以我再次尝试使用-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'
Run Code Online (Sandbox Code Playgroud)

我该如何处理这种情况?

Tho*_*mas 7

看起来它希望系统上存在id为65530的用户,但事实并非如此.它通过调用获取该id os.getuid(),返回当前用户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']
Run Code Online (Sandbox Code Playgroud)