On Thu, May 19, 2011 at 10:35 PM, Erik Bray <[email protected]> wrote:
> On Thu, May 19, 2011 at 4:10 PM, Erik Bray <[email protected]> wrote:
>> Hello all,
>> I've got a tricky problem I'm trying to deal with.  Here's the scenario:
>>
>> I'm trying to build a package that has two requirements in
>> setup_requires; let's say `setup_requires = ['package_A',
>> 'package_B']`.
>> The problem is that "package_B" also contains "package_A" in its own
>> setup_requires.
>>
>> What happens when I do an install/build is that package_B is
>> downloaded and installed--in the process it also downloads and
>> installs package_A in its sandbox.  This wouldn't be a problem except
>> that the sandboxed temp install of package_A is left in
>> pkg_resources.working_set.entries, and so it's assumed package_A is
>> already installed, and the main install doesn't try to fetch it.
>> However, when it goes to import from package_A, I get an import error
>> (because the sandbox it was installed in has since been deleted).
>>
>> If I reverse the order it doesn't work either for a different, but
>> related problem.  package_A gets installed into the cwd and is added
>> to pkg_resources.working_set.  When package_B is installed it uses the
>> existing package_A installation, so that's fine.  But then, due to
>> some complicated interplay, package_A never gets added to sys.path.
>>
>> I'd consider this a defect, though I'm wondering if there's something
>> I could do differently to avoid this situation.
>
> Just to confirm my theory about this, I modified
> setuptools.sandbox.run_setup to also save off and restore
> pkg_resources.working_set.{entries,entry_keys,by_key}.  This solves
> the problem, and the build works regardless of how my setup_requires
> are ordered.  Is there any reason this shouldn't be done?  It seems
> reasonable to me...
>
> It would also still be nice to find a workaround until and unless this
> gets patched.  All I can think of at the moment is monkey-patching :/

I have added an issue about this here:
https://bitbucket.org/tarek/distribute/issue/205/distributes-sandboxing-doesnt-preserve

Since we're plannning a release this week-end for the upcoming python
3 release, I'll see if I can add a patch for this problem

Thanks

>
> Thanks,
> Erik
> _______________________________________________
> Distutils-SIG maillist  -  [email protected]
> http://mail.python.org/mailman/listinfo/distutils-sig
>



-- 
Tarek Ziadé | http://ziade.org
_______________________________________________
Distutils-SIG maillist  -  [email protected]
http://mail.python.org/mailman/listinfo/distutils-sig

Reply via email to