That does indeed fix this problem, but requiring an egg writer to interrogate all dependent packages (and their dependent packagesÅ ) and then hoist the dependencies up won't be robust if those dependent packages change their requirements between the time the egg is written and the time it's loaded.
It seems to me that if a requirement has no version specified, then it shouldn't have a way to cause a VersionConflict. One possible way of implementing this would be to have resolve() only check that a distribution exists if no version is specified, do not update 'best'. 'to_activate' would need to be updated with 'generic' distributions only if a requirement with a version specifier hadn't been seen. On 8/8/13 7:44 PM, "PJ Eby" <p...@telecommunity.com> wrote: >On Thu, Aug 8, 2013 at 3:19 PM, Townsend, Scott E. (GRC-RTM0)[Vantage >Partners, LLC] <scott.e.towns...@nasa.gov> wrote: >> During easy_install of an egg where two versions of pyparsing were >>available >> (1.5.2 and 1.5.6), a VersionConflict was raised: >> >> pkg_resources.VersionConflict: (pyparsing 1.5.6 >> (/usr/lib/python2.7/dist-packages), >>Requirement.parse('pyparsing==1.5.2')) >> >> This was unexpected since sys.path (via virtualenv) has version 1.5.2 >>before >> 1.5.6. And the system gets 1.5.2 from 'import pyparsing', not 1.5.6. > >Have you tried declaring the 1.5.2 dependency from your main project? >IIRC, that should make it take precedence over either of the indirect >dependencies. _______________________________________________ Distutils-SIG maillist - Distutils-SIG@python.org http://mail.python.org/mailman/listinfo/distutils-sig