2012-05-20 13 views
8

を失敗し、この問題が発生します。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' 

どのようにすることができますこの状況に対処する?

+0

のために、私はこのエラーを得た= – aberaud

答えて

7

ID 65530のユーザーがシステムに存在すると思われますが、そうではありません。そして、現在のユーザーIDを返すos.getuid()を呼び出すことによって、そのIDを取得します。

おそらく、あなたがこれを実行しているユーザーは削除されているか、無効になっていますか?手がかりは/etc/passwdをチェックしてください。あなたのコメントに照らして


アップデート:どうやら/etc/passwdあなたのchroot jail内に存在しません。どちらかあなたはそれをマッピングしようとすることができ、またはexpanduserのためのコードが言うように、あなたは、賢明な何かにHOME環境変数を設定することができます。私もこの問題に直面した

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

はい私はchrootしてこのPythonスクリプトを実行します。 – user1035957

+0

私はこのブロックにコメントし、 'userhome = '/''を設定するだけで、このエラーは消えます。多くのおかげで:) – user1035957

+0

システム全体のPythonインストールの標準ライブラリをハッキングしました。システムを使用できないようにする前に、すぐにそれを元に戻すことをお勧めします。私の答えには2つの良い選択肢が含まれています。 – Thomas

0

あなたは(あなたのアプリエラー・ログ内の)Apacheの上のmod_wsgiからこのエラーが発生した場合、FIXはであなたのWSGIDaemonProcessディレクティブに「家= /パス/に/アプリ」を追加することですあなたのwsgi.conf(パスを設定する場所はそれほど重要ではありません)。 DynamicUserでsystemdにサービスとしてPythonスクリプトを実行するときにexample--

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

mod_wsgiの場合とは異なり、根本的な問題は同じではありません。どのmod_wsgiバージョンを使用していますか?それは非常に古いmod_wsgiバージョンの場合かもしれませんが、最新バージョンのそれが本当である(覚えていない)のか分かりません。 –

関連する問題