-
Notifications
You must be signed in to change notification settings - Fork 218
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
Support selection of Python implementation on an individual component. #183
Comments
I like this idea, but it would require separate virtualenvs per component in the topology. We're going to end up having to do that anyway to avoid race conditions when we switch to using the topology hook to address #99, but it's worth noting. |
Good point. The configuration for this could point to paths for the Python executables within the virtualenvs, as to decouple virtualenv management from the config itself.
|
I was thinking more along the lines of having the config specify the Python version needed and then have the topology hook install the appropriate version. |
Ah. I'm thinking about something similar to |
It seems a little simpler to the user to have them just specify the version and not make them care about where things actually end up on the servers (especially since they won't be SSHing into them anymore). |
That makes sense. It'd be great to at least discuss in docs how to configure this. It might be as simple as making sure the |
Since we now support component-specific config dictionaries via the Python Topology DSL, I think this could probably just be a special setting, maybe called |
I prefer |
The idea is that each component would have its own separate conda environment (or maybe PEX as in #212), so there wouldn't be one path to refer to. |
Sounds interesting. However we do it, I'm advocating that we support "Bring Your Own Python." If we do |
Given the use of
ShellBolt
, we could consider having a given component in the streamparse-based topology use a Python implementation other than the one that streamparse is using. This could be useful e.g. to have one component running in PyPy while others are running Python 2 and Python 3 simultaneously.The text was updated successfully, but these errors were encountered: