homepage

This issue tracker has been migrated to GitHub , and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author ned.deily
Recipients Quik_Foot, ned.deily
Date 2009年11月20日.21:45:59
SpamBayes Score 2.942091e-15
Marked as misclassified No
Message-id <1258753562.03.0.927923190909.issue7367@psf.upfronthosting.co.za>
In-reply-to
Content
>I initially came across the error when attempting to get a modules list
>and was returned a list of errors. One of them was the [errno 13].
OK, now that makes more sense!
The problem is that somehow you had a write-only directory ("~/Public/Drop 
Box") on your python module search path. If you type the following commands 
in IDLE or in the interpreter:
import sys
sys.path
you will likely see the "Drop Box" directory in the list of paths (assuming 
things haven't changed).
When you run the "modules" help command, the python help module, pydoc, uses 
the pkgutil module to search the entire list of directories in sys.path and 
attempts to import each package it finds in each directory to print the 
module's help information (btw, there are no separate help files).
While the pkgutil.walk_packages function tries to handle most errors, it 
isn't prepared to handle the case of a write-only directory on sys.path and 
that's the root cause of the error of the error you saw. The following test 
case demonstrates the problem:
import os, pkgutil, sys
dirname_wo = os.tempnam()
os.mkdir(dirname_wo, 0222) # write permission only
try:
 sys.path.insert(0, dirname_wo)
 def onerror(pkgname):
 print('onerror called for package %s' % pkgname)
 for importer, modname, ispkg in pkgutil.walk_packages(onerror=onerror):
 print modname
finally:
 os.rmdir(dirname_wo)
The long-term solution is to have pkgutil.walk_packages protect itself 
against os.listdir errors. A patch is needed for that.
In your case, though, you should check for and remove whatever is adding 
"Drop Box" to your Python sys.path. Perhaps you have an out-of-date export 
of PYTHONPATH in a shell profile (.bash_profile, etc)? Or something left 
over in a site-packages pth file (perhaps by trying to install a package 
from the "Drop Box" directory)? By changing the permissions as you did, you 
worked around the problem but that's not the right solution and you could be 
compromising the security of your drop box file.
History
Date User Action Args
2009年11月20日 21:46:02ned.deilysetrecipients: + ned.deily, Quik_Foot
2009年11月20日 21:46:02ned.deilysetmessageid: <1258753562.03.0.927923190909.issue7367@psf.upfronthosting.co.za>
2009年11月20日 21:45:59ned.deilylinkissue7367 messages
2009年11月20日 21:45:59ned.deilycreate

AltStyle によって変換されたページ (->オリジナル) /