[13:07:44] <natim> But apparently, pypy installation also try to use this wheel which doesn't have the pp2 tag
[13:07:49] <natim> See https://www.python.org/dev/peps/pep-0425/#python-tag
[13:21:54] <ronny> natim: sounds like a bug, the cpython specific one should use cp... - pypy should try the py2/3 ones as well
[13:22:20] <ronny> natim: how do you build your packages?
[13:22:48] <natim> Yes pypy tries py2/3 but when you do /usr/bin/pypy setup.py bdist_wheel
[13:23:04] <natim> It generates py2-py3-none.whl instead of pp2-pp3-none.whl
[13:23:19] <natim> See https://github.com/pypa/packaging-problems/issues/73
[13:23:59] <natim> Note that in my case I don't have the same dependencies for pypy and cpython2/3 so that py2-py3*.whl doesn't work with pypy
[13:25:28] <ronny> natim: oh, for that reason there are platform markers
[13:25:55] <natim> Yes but this line of code doesn't handle them: https://bitbucket.org/pypa/wheel/src/f746a01eab7a673cb628a52f99c129d0d5741bcf/wheel/bdist_wheel.py?at=default#bdist_wheel.py-99
[13:26:05] <natim> Markers are defined here : https://www.python.org/dev/peps/pep-0425/#python-tag
[13:26:48] <ronny> natim: environment markers work different
[13:28:15] <natim> ronny: what do you mean? How should I generate my pypy specifics whl ?
[13:28:16] <ronny> natim: you can use extras_require={":implementation_name == 'thenamepypyuses'": ['needed_by_pypy']}
[13:28:55] <natim> ronny: do you have a working example?
[13:29:06] <ronny> natim: not off hand and at work
[13:44:52] <natim> ronny: I have tried https://www.python.org/dev/peps/pep-0496/#examples whithout success
[13:55:14] <natim> ronny: I could use python_implementation to generate the build but then when trying to install I get NameError: global name 'python_implementation' is not defined
[13:56:48] <ronny> natim: hmm, this is costing too much time for you, you mgiht want to run 2 builds, one with pypy passing the pp version tag and one for cpython pasing the cp version tag
[14:58:50] <moldy> what is the current state of the plans about pip as root / --user?
[14:59:13] <moldy> i am aware of https://github.com/pypa/pip/issues/1668 but it's a little hard to see in which direction things are moving right now
[15:34:16] <ronny> agronholm: yes, see the pep linked above
[15:35:07] <dstufft> moldy: the current state is we still plan to default to --user when not as root but I haven't had time to work on it more and nobody else has picked it up
[15:36:14] <agronholm> oh cool, I was not aware of these
[15:39:03] <moldy> dstufft: what about the anti-usecase of people breaking their systems by running "sudo pip install foo"?
[15:39:52] <moldy> oh i see, you think defaulting to user will make that happen less often...
[15:40:41] <moldy> the problem is, it will not fix all the broken documentation on the web that explicitly tells people to run sudo pip install
[15:40:54] <dstufft> we're not going to prevent people from running pip as root, it would break a lot of people's use cases and it's not an unreasonable use case. It's often times perfectly fine to install things using pip.
[15:41:18] <agronholm> pip install --user places the scripts in a directory which is NOT on the PATH by default
[15:41:26] <agronholm> that will confuse a lot of people
[15:41:32] <moldy> i'd bet that 99% of the times, it's not a legitimate usecase, just somebody not knowing he is about to break his OS
[15:42:03] <dstufft> I'm working with various distros to make it so that it won't break their OS.
[15:42:31] <moldy> dstufft: sounds interesting, what are the plans in that area?
[15:42:58] <dstufft> it's a perfectly reasonable thing to install into /usr/local with pip and if that breaks things that's a failing of the toolchain not of the person invoking the command
[15:46:13] <moldy> given the fact that python is an all-purpose language, a very wide range of tools can in principle be affected by this
[15:46:28] <moldy> various parts of desktop environments, whatever
[15:46:55] <moldy> but obviously, the PM is quite a bad component to break :p
[15:47:16] <dstufft> My plan for that is to standardize the patches that Debian has which has a different directory for "vendor" installed packages and "administrator" installed packages, and for something as critical as a package manager they'd use a new flag that I plan to add that says to exclude everything but the vendor packages
[15:48:28] <dstufft> But what you're asking is the equivilant to making it impossible to run ``make install`` into /usr/local too, people can do that and break their system just as easily if they aren't careful about what they install.
[15:49:17] <moldy> true in principle, but seems to be a much less common problem in practice
[15:52:05] <dstufft> Another item I plan on adding is adding a file to the python metadata, INSTALLER (or something like it) which will be a file that tells pip what tool was used to install a particular library and if it's a system package manager then pip won't uninstall it (but, in combination with the vendor patch) it will be willing to install into the site-packages instead of vendor-packages, but also importantly it will likely treat the already installed
[15:52:05] <dstufft> version as a "use this unless it doesn't match our required version" instead of "try to upgrade to the latest version"
[15:57:07] <moldy> personally i don't like all this complexity and special-casing and tools reading other tools' stuff, but ah well :)
[15:58:56] <dstufft> I happen to think that the old model of what an OS is is broken and doesn't make sense anymore, but I don't have the energy to fight with the distros to tell them that the things they picked in the 90's doesn't make sense in 2015.
[15:59:24] <agronholm> it would be so great if they could agree to unify their package tooling
[15:59:34] <agronholm> but I believe hell will freeze over sooner
[16:00:02] <agronholm> OTOH, I never expected systemd to happen either
[16:01:16] <dstufft> I don't even care about unifying their package tooling, but I think a lot of problems come from the fact that distros have pacakges which are designed to install *system utilities* but they make these system utilities available in non system use cases
[16:01:39] <dstufft> take Python, Python exists so that system tools written in Python can exist, not so that random developers can install stuff into it while developing
[16:01:57] <dstufft> so don't put ``python`` on the default path, hide it somewhere that's for system use only
[16:02:09] <agronholm> what would you suggest then
[16:02:13] <moldy> personally i just use virtualenv for everything that is not part of the base os, but most newbies don't
[16:02:41] <agronholm> it'd help if virtualenv was an integral part of python...oops it is
[16:02:43] <dstufft> (IOW, I think that idea of what OSX is doing with OpenSSL in El Capitan is the right way, OpenSSL is there, but it's not for you it's for the system and you can't compile against it really without hacking up your system)
[16:02:59] <agronholm> does the integrated pyvenv even install setuptools and pip?
[16:03:50] <dstufft> I'm not sure if 15.04 has it butchered or not
[16:04:17] <agronholm> "pyvenv" tells me to install python3-venv
[16:04:27] <dstufft> I think that means it's not butchered then
[16:04:37] <dstufft> I think if you install python3-venv it'll pull in python-pip-whl
[16:04:53] <moldy> agronholm: it is in python3, but you still have even high-profile packages like django telling people to run "sudo pip install django" in their installation docs :/
[16:04:57] <dstufft> I mean, it's still butchered because distros love applying random patches to things
[16:19:37] <doismellburning> agronholm: it doesn't quite do what you're talking about though; I was writing a wrapper that would have, but then Docker happened
[16:20:00] <agronholm> doismellburning: yeah docker does decrease its value somewhat
[16:20:16] <doismellburning> oh, parcel, that's what I called it
[20:45:36] <transit> I've been trying hard to get a package's dependencies from a private (institutional) subversion repository installed when the package is installed, I can install via pip but could not get it done with dependency_links. Here's what I came up with: https://dpaste.de/tnot Comments?
[20:47:29] <xafer> if using dependency_links in your packages, you might need the --process-dependency-links option when invoking pip install
[20:48:17] <xafer> erh, are you invoking pip inside your setup.py ?
[22:48:38] <mathieui> is there a way of specifying a dependency in a requirements.txt without triggering the build action?
[22:49:12] <mathieui> because for some things (e.g. cython), building takes a long time, even if it’s already usable without it
[22:52:56] <dstufft> mathieui: Not really, but as of pip 7 if you have ``wheel`` installed it'll cache a built wheel and reuse that in future installations
[22:56:06] <mathieui> another question then, is there a way to mix system packages and venv-installed packages?
[22:59:13] <moldy> mathieui: with virtualenv, there is --system-site-packages
[23:00:08] <mathieui> yes, but iirc if you do a pip install -r requirements.txt and one requirement is in a different version on the system, it will fail
[23:00:46] <moldy> i'm not sure which behaviour you are looking for
[23:05:03] <moldy> if the requirements.txt specifies foo==1.0 and the system has 0.9 or 1.1, what do you expect?
[23:05:40] <moldy> you mean you expect pip to install 1.0
[23:05:43] <mathieui> which can be made faster if built with cython on a system
[23:10:35] <mathieui> moldy, yes, I expect pip to install 1.0
[23:13:10] <mathieui> theoretically, a virtualenv could have a dedicated site-packages directory, and still configure $PYTHONPATH to load modules from the system-wide directory if they are not found in the venv-specific one, right?
[23:13:56] <moldy> i never used it, but i always thought this was what --system-site-packages does