Wolfram Function Repository
Instant-use add-on functions for the Wolfram Language
Function Repository Resource:
Evaluate an expression automatically while installing required Python packages
ResourceFunction["PythonEvaluateWithDependencies"][spec,cmds] evaluates the Python commands cmds in a system satifying the specification spec and tries to install any required Python packages that are not yet installed. | |
ResourceFunction["PythonEvaluateWithDependencies"][expr] evaluates the expression expr that calls ExternalEvaluate to execute Python commands. | |
ResourceFunction["PythonEvaluateWithDependencies"][…,info] returns the specified additional information info. |
| All | an Association of the result and a list of installed packages |
| None | only the result of evaluation (default) |
The Python package "camelcase" used in this example is not installed in this system:
| In[1]:= |
| Out[1]= |
Evaluate the Python code, installing the package automatically:
| In[2]:= |
| Out[2]= |
| In[3]:= |
| Out[3]= |
The package is now installed:
| In[4]:= |
| Out[4]= |
Uninstall the package to clean up:
| In[5]:= |
| Out[5]= |
Evaluate an expression that contains a call to ExternalEvaluate:
| In[6]:= |
| In[7]:= | ![]() |
| In[8]:= |
| Out[8]= |
Clean up:
| In[9]:= |
| Out[9]= |
Install as many Python packages as necessary to successfully evaluate an expression:
| In[10]:= | ![]() |
| Out[10]= | ![]() |
| In[11]:= |
| Out[11]= |
Uninstall the packages to clean up:
| In[12]:= |
| Out[12]= | ![]() |
Obtain both the result of evaluation and a list of installed packages:
| In[13]:= |
| Out[13]= |
Uninstall the added packages to clean up:
| In[14]:= |
| Out[14]= | ![]() |
Use the option "NameSubstitutions" to install a specific version of a package:
| In[15]:= |
Clean up:
| In[16]:= |
| Out[16]= |
PythonEvaluateWithDependencies is most useful when the Python code requirements are not known:
| In[17]:= |
Start a session and make an inventory of installed packages:
| In[18]:= |
| Out[18]= | ![]() |
| In[19]:= |
Evaluate the black box code:
| In[20]:= |
| Out[20]= |
See the newly installed package:
| In[21]:= |
| Out[21]= |
Uninstall it:
| In[22]:= |
| Out[22]= |
End the session:
| In[23]:= |
Use the resource function CreatePythonVirtualEnvironment to ensure that packages installed by PythonEvaluateWithDependencies will not interfere with your working Python system:
| In[24]:= |
| Out[24]= |
| In[25]:= |
| Out[25]= | ![]() |
| In[26]:= |
The "requests" package is installed in your new virtual environment:
| In[27]:= |
| Out[27]= |
Typically, environments are used in multiple Wolfram Language sessions and deleted afterwards:
| In[28]:= |
| Out[28]= |
| In[29]:= |
The resource function PythonPackageInstall can be used instead of PythonEvaluateWithDependencies when the package requirements are known beforehand:
| In[30]:= |
| In[31]:= |
| Out[31]= |
| In[32]:= |
| Out[32]= |
Uninstall the package:
| In[33]:= |
| Out[33]= |
PythonEvaluateWithDependencies fails if a missing Python package cannot be installed:
| In[34]:= |
| Out[34]= |
This work is licensed under a Creative Commons Attribution 4.0 International License