On Jan 30, 2014, at 11:44 AM, Evgeny Sazhin <[email protected]> wrote:
> On Thu, Jan 30, 2014 at 9:38 AM, Donald Stufft <[email protected]> wrote: >> >> On Jan 29, 2014, at 11:29 PM, Evgeny Sazhin <[email protected]> wrote: >> >>> >>> On Jan 29, 2014, at 11:17 PM, Donald Stufft <[email protected]> wrote: >>> >>>> >>>> On Jan 29, 2014, at 11:16 PM, Evgeny Sazhin <[email protected]> wrote: >>>> >>>>> >>>>> On Jan 29, 2014, at 10:49 PM, Donald Stufft <[email protected]> wrote: >>>>> >>>>>> >>>>>> On Jan 29, 2014, at 10:47 PM, Evgeny Sazhin <[email protected]> wrote: >>>>>> >>>>>>>> >>>>>>>> Wheel is a package format. Packages are for transmitting and >>>>>>>> installing bits. If you want to make some kind of self-unpacking >>>>>>>> executable please do it with something built for it. makeself is an >>>>>>>> excellent choice for these. >>>>>>>> >>>>>>> >>>>>>> I didn't say anything about self-unpacking executable. Egg already >>>>>>> knows to do what is needed, so i was correct in expecting the wheel to >>>>>>> do the same. Plus the notion of packages for transmitting and >>>>>>> installing should not exclude the running and importing. Otherwise it >>>>>>> is useless, at least for my purposes. As discussed before - jar does >>>>>>> that just fine and it is a package format. >>>>>>> >>>>>>> Funny thing - wheel allows to do the same! Why would i want to use >>>>>>> anything else then??? >>>>>> >>>>>> Because Python is not Java and Wheels are not Jars. You'll find very few >>>>>> packages actually support being run from a zipped file and the failure >>>>>> modes are not always obvious. >>>>> >>>>> I understand that not a lot of currently existing project are using this >>>>> capability - but I'm 100% positive that if the running from wheel would >>>>> be properly supported on error handling level and officially declared at >>>>> least for the pure python - most of the people would be happy to have >>>>> that! If we think about that, why would i want to use anything else other >>>>> than wheel and pip if this pair gives the possibility to >>>> >>>> Pip does not install zipped wheels, and while it's not entirely up to me I >>>> would be opposed to it getting the ability to do so. >>> >>> I might be poorly wording things - but i never said I want pip to install >>> the zipped wheel. It seems that you're missing the point a bit. >>> I'm totally fine with the way pip handles things. >>> >>> again briefly My idea is to use the following: >>> >>> central location - flat folder with wheels, accessible to read for >>> everybody in network. >>> >>> for development : pip and virtual env. project has the virtual env created, >>> dependencies are deployed and available for development and debugging in a >>> standard manner. When done the project is packaged into wheel that is >>> getting deployed to central location. >>> >>> To *run* the program: i would create a script that bases on the pip ability >>> to resolve dependencies and basing on the requirements.txt from inside my >>> wheel it would generate PYTHONPATH to prepend the starting call like that: >>> PYTHONPATH=1.whl:2.whl; python 3.whl >>> >>> where 3.whl is program with __main__.py and 1.whl and 2.whl are >>> dependencies needed. This works as of now! >> >> Just use pip and virtualenv in production. It's bad form to install things >> differently in development than in production. It *will* lead to production >> only bugs and in the case of zip imports it'll lead to hard to diagnose >> errors and bugs that you'll never be able to reproduce in development. > > > I'm happy to concede the run from zip thing if somebody could explain > how should i use pip and virtualenv in production? > Currently it seems to be very clean and clear. I can have one folder > where i can dump multiple versions of the same project in wheel format > and having requirements.txt in each of them i can construct PYTHONPATH > and run things. Simple! > > How am i supposed to manage that using pip and virtual envs in production? The same way you’d use them in development? Hell I believe you can even do: $ virtualenv my_virtualenv $ my_virtualenv/bin/pip install path/to/wheelhouse/* The point is it’s just installed libraries, asking this question doesn’t really make much sense, it’s like asking how do you use apt-get or yum in production. > > Thanks, > Eugene ----------------- Donald Stufft PGP: 0x6E3CBCE93372DCFA // 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9 3372 DCFA
signature.asc
Description: Message signed with OpenPGP using GPGMail
_______________________________________________ Distutils-SIG maillist - [email protected] https://mail.python.org/mailman/listinfo/distutils-sig
