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/passwdchroot刑務所内には明らかに存在しません。次のコードのように、マッピングを試すか、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 に答える