Hi,
On Wed, Oct 3, 2012 at 10:51 PM, Ralf Gommers <[email protected]> wrote:
>
>
> On Wed, Oct 3, 2012 at 11:29 PM, Matthew Brett <[email protected]>
> wrote:
>>
>> Hi,
>>
>> On Wed, Oct 3, 2012 at 10:17 PM, Ralf Gommers <[email protected]>
>> wrote:
>> >
>> >
>> > On Mon, Oct 1, 2012 at 10:47 PM, Matthew Brett <[email protected]>
>> > wrote:
>> >>
>> >> Hi,
>> >>
>> >> On Mon, Oct 1, 2012 at 9:42 PM, Matthew Brett <[email protected]>
>> >> wrote:
>> >> > Hi,
>> >> >
>> >> > One of our kind users pointed out an error when using easy_install to
>> >> > install our package nipy. I've reproduced it now on a bare package
>> >> > using numpy distutils and having a trivial extension:
>> >> >
>> >> > https://github.com/matthew-brett/apkg
>> >> >
>> >> > To reproduce:
>> >> >
>> >> > git clone git://github.com/mathew-brett/apkg.git
>> >> >
>> >> > easy_install apkg
>> >> >
>> >> > You should get something like this:
>> >> >
>> >> > Processing apkg
>> >> > Running setup.py -q bdist_egg --dist-dir
>> >> > /home/mb312/tmp/apkg/egg-dist-tmp-T5yjuB
>> >> > Appending apkg configuration to
>> >> > Ignoring attempt to set 'name' (from '' to 'apkg')
>> >> > zip_safe flag not set; analyzing archive contents...
>> >> > Adding apkg 0.1 to easy-install.pth file
>> >> >
>> >> > Installed
>> >> >
>> >> > /home/mb312/.virtualenvs/np-1.6.2/lib/python2.6/site-packages/apkg-0.1-py2.6-linux-i686.egg
>> >> > Processing dependencies for apkg==0.1
>> >> > Finished processing dependencies for apkg==0.1
>> >> >
>> >> >
>> >> > /home/mb312/.virtualenvs/np-1.6.2/lib/python2.6/site-packages/numpy/distutils/misc_util.py:252:
>> >> > RuntimeWarning: Parent module 'numpy.distutils' not found while
>> >> > handling absolute import
>> >> > from numpy.distutils import log
>> >> >
>> >> > Note the last error.
>> >>
>> >> Sorry, correcting myself - it's (obviously) a Warning rather than an
>> >> error, but still distracting, and it would be good to avoid it if
>> >> possible...
>> >
>> >
>> > The combination of two or all of atexit.register, easy_install and
>> > virtualenv seems to be causing this. Unless someone feels like digging
>> > into
>> > that (I certainly don't), there are two easy solutions:
>> > 1. Silence the warning.
>>
>> Sorry - I am not sure what you mean. The problem here is the user who
>> assumes that something bad happened when running easy_install - which
>> is what happened in the case of nipy. Is there some way of silencing
>> this (specific) warning from within setup.py?
>>
>> > 2. Remove the offending import and the logging. This will only remove
>> > the
>> > line "removing: _configtest.c _configtest.o" from the build log (x20).
>>
>> Which import did you mean? I think I need all the imports I'm using
>> in the example minimal package. I'm not explicitly importing logging
>> for example.
>
>
> The import that's indicated in the warning, on line 252 of
> numpy/distutils/misc_util.py. Relevant code:
>
> _temporary_directory = None
> def clean_up_temporary_directory():
> from numpy.distutils import log # CAUSES RUNTIME WARNING
> global _temporary_directory
> if not _temporary_directory:
> return
> log.debug('removing %s', _temporary_directory)
> try:
> shutil.rmtree(_temporary_directory)
> except OSError:
> pass
> _temporary_directory = None
>
> def make_temp_file(suffix='', prefix='', text=True):
> global _temporary_directory
> if not _temporary_directory:
> _temporary_directory = tempfile.mkdtemp()
> atexit.register(clean_up_temporary_directory)
Sorry - I still don't understand. You mean I should (in my package -
say nipy or 'apkg') monkey-patch numpy distutils.misc_util ?
Another option would be to move the import outside the callback function thus:
diff --git a/numpy/distutils/misc_util.py b/numpy/distutils/misc_util.py
index 2e4ed27..e00d924 100644
--- a/numpy/distutils/misc_util.py
+++ b/numpy/distutils/misc_util.py
@@ -18,6 +18,7 @@ except NameError:
from sets import Set as set
from numpy.distutils.compat import get_exception
+from numpy.distutils.log import debug as log_debug
__all__ = ['Configuration', 'get_numpy_include_dirs', 'default_config_dict',
'dict_append', 'appendpath', 'generate_config_py',
@@ -249,11 +250,10 @@ def gpaths(paths, local_path='',
include_non_existing=True):
_temporary_directory = None
def clean_up_temporary_directory():
- from numpy.distutils import log
global _temporary_directory
if not _temporary_directory:
return
- log.debug('removing %s', _temporary_directory)
+ log_debug('removing %s', _temporary_directory)
try:
shutil.rmtree(_temporary_directory)
except OSError:
Do you happen to know if that will break anything? Setup install runs for me...
Cheers,
Matthew
_______________________________________________
NumPy-Discussion mailing list
[email protected]
http://mail.scipy.org/mailman/listinfo/numpy-discussion