Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pypy alongside cpython + base/interpreter for noarch:python packages #1

Open
mbargull opened this issue Nov 20, 2019 · 4 comments
Open

Comments

@mbargull
Copy link

In reference to
@mattip in conda-forge/conda-forge.github.io#867 (comment):

Would a user ever get into a situation where they have two interpreters in the same conda environment?

Will Conda packages for CPython and PyPy themselves have path conflicts, e.g., both having bin/python or lib/pythonX.Y/some-file? IIRC, PyPy uses a different lib/some-thing path, right?

If there are no conflicts, we could potentially let them be installable side by side.

How would conda handle its noarch: python packages for PyPy? Currently, it uses python.exe or bin/pythonX.Y. Either the pypy package, or the python=*=pypy package should provide those binaries. If we put them into the python package, we could do the same for cpython and ensure exclusivity. (I guess this may put off some people since cpython wouldn't be considered "complete" then. Well, I'm just putting down thoughts as them come right now and still lack a view of the whole picture...)

@mattip
Copy link

mattip commented Nov 20, 2019

IIRC, PyPy uses a different lib/some-thing path, right?

That is a decision for conda to make. As packaged in the PyPy-provided tarballs, PyPy's stdlib and site-packages paths are different, but not for any good reason. Typically packages like debian, arch modify this as they wish. If conda wishes to put the two iplementaitons into the same environment they should ensure the layouts are different, and that the typical symlink of bin/pypy -> bin/python is not created.
I would advise against it as "too complicated" but I don't know how sensitive users are to disk space

@mattip
Copy link

mattip commented Nov 20, 2019

Would this design be valid for building feedstocks that use c-extension modules like NumPy and lxml? They cannot be shared across implementations.

@msarahan
Copy link
Owner

yes. Those packages would use the python-devel package shown in the recipe here. That would add a runtime dependency on either pypy or cpython to prevent ambiguity and problems. It might need tweaking beyond the example here, but the rough idea here should work.

@mbargull
Copy link
Author

[...] PyPy's stdlib and site-packages paths are different, but not for any good reason. Typically packages like debian, arch modify this as they wish.

Good to know, thanks!

[...] I would advise against it as "too complicated"

👍 TBH, that was what I anticipated to hear. IMHO, there is not too much value in having CPython and PyPy in the same environment.
(I mean, conda-forge and Anaconda don't even support running a Python 2 interpreter in the same environment as a Version 3 one, i.e., we don't offer separate python2 packages -- so not offering CPython and PyPy in the same env should not come as too much of a surprise for the user.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants