Group Abstract Group Abstract

Message Boards Message Boards

Has anyone gotten ExternalEvaluate to work with Anaconda Python on OS X?

Posted 8 years ago
POSTED BY: Szabolcs Horvát
5 Replies

I know this is an old post, but a lot has changed with ExternalEvaluate and its support of Python. In the current releases ExternalEvaluate will create virtual environments on the fly.

For example, this now creates a Python virtual environment that includes pandas:

session = StartExternalSession[<|
   "System" -> "Python",
   "Evaluator" -> <|"Dependencies" -> {"pandas"}|>,
   "SessionProlog" -> "import pandas as pd"|>]

And then this is some sample code that shows how you can use it. The following will return a Dataset:

ExternalEvaluate[session, "
data = {'col1': [1, 2, 3], 'col2': ['a', 'b', 'c']}
pd.DataFrame(data)"]

The attached notebook shows the code with the output included.

Attachments:
POSTED BY: Arnoud Buzing
Posted 8 years ago

I tried to register a Python executable installed in a virtualenv with RegisterExternalEvaluator but it didn't seem to work:

In[162]:= virtualenvPython="/Users/meng/python_virtualenvs/virtualenv-test/bin/python2.7";
RunProcess[{virtualenvPython,"--version"},All]
Out[162]= <|"ExitCode" -> 0, "StandardOutput" -> "", 
 "StandardError" -> "Python 2.7.13
  "|>
In[161]:= RegisterExternalEvaluator["Python",virtualenvPython]
During evaluation of In[161]:= RegisterExternalEvaluator::invalid: -- Message text not found -- (ExternalEvaluate`Private`reason)
Out[161]= $Failed
POSTED BY: Meng Lu

I didn't comment on virtualenv further because when I tried it, it worked for me. It is necessary to have pyzmq installed in that virtualenv though. Did you make sure it's installed?

POSTED BY: Szabolcs Horvát
POSTED BY: Szabolcs Horvát
POSTED BY: Szabolcs Horvát
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard