GitHub user 1ambda opened a pull request:
https://github.com/apache/zeppelin/pull/1868
[ZEPPELIN-1917] Improve python.conda interpreter
### What is this PR for?
Add missing commands to the `python.conda` interpreter
- `conda info`
- `conda list`
- `conda create`
- `conda install`
- `conda uninstall (alias of remove)`
### What type of PR is it?
[Improvement | Refactoring]
### Todos
* [x] - info
* [x] - list
* [x] - create
* [x] - install
* [x] - uninstall (= remove)
### What is the Jira issue?
[ZEPPELIN-1917](https://issues.apache.org/jira/browse/ZEPPELIN-1917)
### How should this be tested?
1. Install [miniconda](http://conda.pydata.org/miniconda.html)
2. Remove `test` conda env before creating
```sh
$ conda env remove --yes --name test
```
3. Run these commands with `%python.conda`
```
%python2.conda info
%python2.conda env list
%python2.conda create --name test
# you should be able to see `test` in the list
%python2.conda env list
%python2.conda activate pymysql
%python2.conda install pymysql
# you should be able to import
%python2
import pymysql.cursors
%python2.conda uninstall pymysql
%python2.conda deactivate pymysql
# you should be able to see `No module named pymysql.cursor` since we
deactivated
%python2
import pymysql.cursors
```
### Screenshots (if appropriate)

### Questions:
* Does the licenses files need update? - NO
* Is there breaking changes for older versions? - NO
* Does this needs documentation? - NO
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/1ambda/zeppelin
ZEPPELIN-1917/improve-conda-interpreter
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/zeppelin/pull/1868.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #1868
----
commit 8559998f7266c905e9fd115f6ef4fa90e674555a
Author: 1ambda <[email protected]>
Date: 2017-01-07T04:33:17Z
fix: Use specific command for env list in conda
commit e080988cfea6e3d9f79f95e9a06986fdaeaf692d
Author: 1ambda <[email protected]>
Date: 2017-01-07T04:39:12Z
refactor: PythonCondaInterpreter.interpret
commit 6ef9ca1052ea8bbc3d0a20aed37a57c4319e99f8
Author: 1ambda <[email protected]>
Date: 2017-01-07T04:39:39Z
style: Remove useless newlines
commit 9a0f4aa95caf436fc6f8e910efcd1d2a814fdd60
Author: 1ambda <[email protected]>
Date: 2017-01-07T05:11:51Z
feat: Add info command
commit 6189dea469f3d2285c56fa0323811531d683122b
Author: 1ambda <[email protected]>
Date: 2017-01-07T05:12:25Z
refactor: Add private to member vars
commit aaa85023f4cf12d7719035114b45b4c43152b46c
Author: 1ambda <[email protected]>
Date: 2017-01-07T05:14:14Z
style: Rename some funcs
commit 8e8dcf8f6264c6632d7d63ae0f9b1cb02b622631
Author: 1ambda <[email protected]>
Date: 2017-01-07T05:19:37Z
refactor: Simplify exception flow so private funcs don't need care
exceptions
commit c8c7c3201fab3f171187490a5fb3e13d0280f3ac
Author: 1ambda <[email protected]>
Date: 2017-01-07T05:22:33Z
refactor: Import InterpreterResult.{Code, Type} to short codes
commit eb08b872b6c7a583c7f9b1db83a5e4e8a508a6f1
Author: 1ambda <[email protected]>
Date: 2017-01-07T05:46:38Z
feat: Add list conda command
commit 0074a6e60b56d05f86f210f1bd109191acb9003e
Author: 1ambda <[email protected]>
Date: 2017-01-07T07:41:21Z
feat: Make conda output beautiful
commit ff791c633f009f412c38326c8e3ba684c9367843
Author: 1ambda <[email protected]>
Date: 2017-01-07T07:41:31Z
docs: Add missing conda list description
commit dc5f06873470a6e3587f9bad574a422465883447
Author: 1ambda <[email protected]>
Date: 2017-01-08T01:24:37Z
feat: Add conda create
commit d6485e42a604bac2e9275a60a87510899e9c3e78
Author: 1ambda <[email protected]>
Date: 2017-01-08T01:33:32Z
feat: Add conda install
commit fd7f750ab66d9a6d837d2e3704f0898f689bf24a
Author: 1ambda <[email protected]>
Date: 2017-01-08T02:20:52Z
feat: Add conda remove (uninstall)
commit 86547d93f37328ce575d62ed292fed1eb8ffb6e8
Author: 1ambda <[email protected]>
Date: 2017-01-08T02:58:24Z
refactor: Abstract commands
commit 0309475ee40c243542ab40ee9e56fcaf7a63173e
Author: 1ambda <[email protected]>
Date: 2017-01-08T03:27:38Z
fix: minor
commit 594f83cdc33b51ea1cfd36b7e0882ca14110efb2
Author: 1ambda <[email protected]>
Date: 2017-01-08T04:36:21Z
refactor: Activate, Deactivate
commit 427443cd35d461df8baf9363462ca2934cce510b
Author: 1ambda <[email protected]>
Date: 2017-01-08T05:11:25Z
fix: NPE in PythonProcess
java.lang.NullPointerException
at
org.apache.zeppelin.python.PythonProcess.sendAndGetResult(PythonProcess.java:113)
at
org.apache.zeppelin.python.PythonInterpreter.sendCommandToPython(PythonInterpreter.java:250)
at
org.apache.zeppelin.python.PythonInterpreter.bootStrapInterpreter(PythonInterpreter.java:272)
at
org.apache.zeppelin.python.PythonInterpreter.open(PythonInterpreter.java:100)
at
org.apache.zeppelin.python.PythonCondaInterpreter.restartPythonProcess(PythonCondaInterpreter.java:139)
at
org.apache.zeppelin.python.PythonCondaInterpreter.interpret(PythonCondaInterpreter.java:88)
at
org.apache.zeppelin.interpreter.LazyOpenInterpreter.interpret(LazyOpenInterpreter.java:94)
at
org.apache.zeppelin.interpreter.remote.RemoteInterpreterServer$InterpretJob.jobRun(RemoteInterpreterServer.java:494)
at org.apache.zeppelin.scheduler.Job.run(Job.java:175)
at org.apache.zeppelin.scheduler.FIFOScheduler$1.run(FIFOScheduler.java:139)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
----
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---