蟒蛇导入站点失败(python import site failed)

2019-09-17 09:14发布

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

我该如何处理这种情况呢?

Answer 1:

看起来它预计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']


Answer 2:

我也遇到了这个问题。 点点网搜索,我得到了修复。 检查你的环境变量PYTHONHOME。

尝试取消设置PYTHONHOME和尝试。 它为我工作。

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



Answer 3:

如果你从阿帕奇mod_wsgi的这个错误(在你的应用程序错误日志),解决方法是增加“家庭= /路径/要/应用”你WSGIDaemonProcess指令在wsgi.conf(它不管那么多了哪里您设置的路径)。 例如 -

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


文章来源: python import site failed
标签: python import