[08:35:18] <ronny> you are not supposed to munge additional packages into eggs
[08:35:26] <nikolaosk> eg, an egg may depend on an older version of a package
[08:36:21] <nikolaosk> and I don't want to mess up already installed packages
[08:36:56] <jchen> hi, namespace packages aren't making any sense to me. when i have two NS packages installed together I can't import the first NS package. What am I doing wrong?
[08:37:20] <ionelmc> nikolaosk: looks like you might want to do some vendoring
[08:47:05] <jchen> hm, nvm, it's working for some reason now. i deleted the virtualenv and made a new one
[08:53:13] <ronny> nikolaosk: if you run the eggs separately, you just need a nosite python and activate the ones you want ^^ (i suspect you dont use pip , so things should be fine)
[08:57:53] <nikolaosk> separate process, yes. The dependencies I install with easy_install as eggs
[09:16:45] <ronny> nikolaosk: good luck then, but plaase keep in midn that what you do is a) messy, b) is already solved by the tools in a different way - so you are fighting windmills
[09:18:58] <nikolaosk> I can't make the daemon run by a siteless python
[09:20:15] <nikolaosk> what do you mean by "activate a site in the subprocess"
[09:28:38] <ronny> nikolaosk: i never said make the daemon run in a siteless python
[09:28:52] <ronny> nikolaosk: subprocesses can add custom site folders
[09:29:31] <ronny> all you need is a python script thats started siteless and given an egg , a site and a entrypoint - thne you jsut enable pkg_ressources, and use that to add the other eggs to sys.path
[09:37:10] <nikolaosk> my mistake, I should have said "can't make the daemon ran by / run a siteless python"
[09:38:13] <nikolaosk> but why do I need it to be siteless? will I then need to put _all_ my dependencies in eggs
[09:38:34] <nikolaosk> packaged along with the project
[09:39:44] <ronny> nikolaosk: thats kind of the intent of the whole egg format, all deps are eggs, differnet processes can run different sets of eggs
[09:40:29] <ronny> and if you use easy_install to isntall the daemon, everything there should be eggs to begin with
[09:40:40] <ronny> easy-insstall does only encapsulated installs
[09:53:14] <nikolaosk> "subprocesses can add custom site folders" but my project is deployed as a zipped egg
[09:53:51] <nikolaosk> I guess I can't add to the python path eggs within eggs
[09:54:07] <nikolaosk> so my deps need to be sources on the toplevel of the egg itself
[09:54:33] <nikolaosk> then the egg, when ran, firstly adds itself to the python path
[10:32:43] <ronny> nikolaosk: dont store eggs in eggs unless you make it zip-unsafe and unpack
[10:32:58] <ronny> nikolaosk: also keep in mind that egg is bascially a dead format, scheduled for demise
[11:16:47] <nikolaosk> I know but I wouldn't expect the daemon to get any more development
[11:54:45] <ronny> dstufft: can you ensure that the next version of wheel will no longer have the version numbers in the inner folders (dist-info/data/...)
[11:55:40] <ronny> (right now there is no way to from within a file of package directly open its dist-info without searching sys.path)
[12:08:44] <kenpachi> i often see try except blocks attempting to import setup from setuptools with a distutils fallback. how does the distutils version of setup handle keyword args introduced by the setuptools version of setup? does it fail gracefully, or does it raise an error? I'm trying to decide whether it is worth offering a distutils fallback
[12:11:50] <ronny> kenpachi: print warnings, please done do the distutils fallbac, it creates a different kind of mess ^^
[12:17:43] <kenpachi> ronny: I don't think I will, I was trying to find good reasons to do so but haven't found any yet, at least for new packages anyway
[12:24:29] <ionelmc> kenpachi: if you use pip then you should have setuptools
[12:24:50] <ionelmc> only broken systems are missing setuptools
[12:25:05] <ionelmc> there's no graceful way to fallback on distutils
[12:25:33] <ionelmc> you'd have to severely cripple your setup.py to make it fallback on pure distutils
[12:25:39] <ronny> kenpachi: also for all pure python packages, make wheels, if possible universal ones, it cuts install times and makes callign setup.py unnecessary in many cases
[12:29:59] <kenpachi> since the python docs explicitly recommend setuptools, is it fair to say that setuptools is now "the standard"?
[12:36:35] <ronny> kenpachi: for now yes, well, the setup part of setuptools is, the way it installs as eggs got superseeded by managed pip installs and virtualenvs
[12:44:10] <kenpachi> FYI to all - it might be worthwhile trying to get this popular stackoverflow answer updated to reflect the current best practices, as describes distutils as the standard and could be misleading: http://stackoverflow.com/questions/6344076/differences-between-distribute-distutils-setuptools-and-distutils2
[12:44:39] <kenpachi> * it currently describes distutils as the standard
[13:13:33] <nickjj> produces an output like this: https://gist.github.com/nickjj/f78674a55f2c96be9ca5 if you're curious
[13:17:13] <ionelmc> is pip-tools still maintained?
[13:37:29] <tdsmith> does anybody know why someone would be seeing a traceback like this, where pip._vendor.distlib.scripts can't be imported after installing a pip egg https://github.com/Homebrew/homebrew/issues/40516#issuecomment-110678188
[14:13:38] <tdsmith> thanks; my sense of order in the universe is restored. (next question is "why are python builds broken on the new os x" :/ which is hard to troubleshoot without access)
[20:49:37] <jaraco> aclark: Should be fixed now. Let me know if you find otherwise.
[20:50:39] <lambacck> jaraco: http://chat-logs.dcpython.org/channel/pypa still has a stack trace showing
[20:50:45] <tdsmith> ionelmc: you were right! the real problem was that the _ssl module wasn't being built (because cpython's openssl detection code needs coaching) and that was giving rise to the real ImportError
[23:09:09] <radix> lots of packages come with optional C extensions that fall back to pure Python code, and I just want to force the fallback.
[23:09:23] <radix> ideally in a way that I can specify in a requirements.txt or something.
[23:09:53] <tomprince> I doubt the later is currently possible.
[23:10:15] <tomprince> There might be a dance you can do by calling setup.py by hand, to just install parts of packages.
[23:11:11] <ionelmc> radix: something like this https://github.com/ionelmc/python-lazy-object-proxy/blob/master/setup.py#L28-L56 ?
[23:11:22] <ionelmc> what would you do with requirements.txt ?!
[23:12:28] <tomprince> ionelmc: The question is how to install existing packages that already have that fallback.
[23:12:40] <ionelmc> there are some other variantions on that custom command, eg: https://github.com/simplejson/simplejson/blob/master/setup.py
[23:12:49] <ionelmc> tho that's really messed up :-)
[23:13:31] <ionelmc> tomprince: that have a fallback but the build_ext is not "optional" ?!
[23:14:34] <tomprince> That will install the extension if there is a C compiler and headers. How, as a user, do you prevent that, for packages that can work without.
[23:14:48] <radix> ionelmc: that still unconditionally *try* to build the C extension, so it's not a solution
[23:15:13] <radix> If I type "pip install simplejson", I get a C extension. And I don't want one.
[23:15:40] <ionelmc> would using a custom PATH (that doesn't have any gcc) be a acceptable workaround?
[23:16:08] <tomprince> Is that enough? Or does distutils know where the compiler that compiled it lives?
[23:16:22] <ionelmc> other way is to use crippled virtualenv (that doesn't have the include dirs or whatever)
[23:16:28] <radix> maybe that'd work. I'd love to be able to specify it on the pip command line in requirements.txt
[23:21:41] <tos9> Is pip>=6.0 a sane thing to put in setup_requires for things that use environment markers, or will that cause setuptools to be the thing that tries to do the install, and therefore the world to end
[23:21:49] <ionelmc> nasty issues have nasty solutions heheh
[23:29:15] <dstufft> tos9: it probably won't do what you want
[23:30:07] <tos9> dstufft: what I want is for stuff to work I guess so I've already not gotten what I want :(
[23:30:50] <dstufft> tos9: lower your expectations until they match reality, instant recipe for contentment!
[23:31:27] <dstufft> tos9: what's the real problem you're trying to solve
[23:34:41] <dstufft> there's not a great way to resolve that currently. Probably we should add something that you can say that you require pip >= X.Y and error out if it doesn't match that
[23:34:50] <dstufft> error out with a reasonable error message*
[23:35:50] <tos9> so let's see if I get this straight.