Alteryx Designer Discussions

Find answers, ask questions, and share expertise about Alteryx Designer.

Installing Tensorflow 1.11.0 and Keras 2.2.4 With Alteryx Designer

ajwilson
5 - Atom

tl;dr - The current tensorflow version (1.11.0) has a compatibility problem with Python 3.6.0, which is included with the current version of Alteryx designer.  You can solve the issue by uninstalling the protobuf package (3.6.1) that is automatically installed with tensorflow and install protobuf version 3.6.0 instead.  

 

Warning:  I'm running Non-Admin Alteryx Designer 2018.3.5.52487 on a windows PC running Windows 10 Pro.  Your results may vary depending on your current configurations.

 

 

I commonly use Keras on top of Tensorflow to build models and wanted to start using some compiled models inline with my Alteryx workflows.  I thought it would be nice and simple, so I opened up a new workflow, added the Python tool, and ran the following:

Alteryx.installPackages("keras")

It looked like everything worked just fine, there were no errors on install, so I went ahead and tried to import keras and got the following error:

>>>from google.protobuf import descriptor as _descriptor 

ImportError: DLL load failed: The specified procedure could not be found. 

After much googling, and finally stumbling on this issue on GitHub, I found the solution.  

 

There are multiple ways to do fix this, but this is how I solved it:

  1. Open up a command prompt and navigate to the location the Alteryx Miniconda Python is installed. For me it is at: 
    ./Alteryx/bin/Miniconda3/PythonTool_venv/Scripts
  2. If you have more than one python environment on your computer, make sure you are running the following commands against the right one. I did this by listing out the installed packages and see if that matches Alteryx or my other environment(s):
    pip list
  3. Uninstall protobuf to remove version 3.6.1:
    pip uninstall protobuf
  4. Re-install protobuf, specifying version 3.6.0:
    pip install protobuf==3.6.0

You should now be able to import tensorflow and keras into your python tool in Alteryx.  I'd recommend running something like this in Alteryx to validate everything:

from ayx import Alteryx
import sys
import tensorflow as tf
import keras
print(f'Python version: {sys.version}') print(f'Tensorflow version: {tf.__version__}') print(f'Keras version: {keras.__version__}')

For me, that resulted in the following: 

Python version: 3.6.0 |Continuum Analytics, Inc.| (default, Dec 23 2016, 11:57:41) [MSC v.1900 64 bit (AMD64)]
Tensorflow version: 1.11.0
Keras version: 2.2.4
2 REPLIES 2
PaulN
Alteryx Alumni (Retired)

Thanks a lot for sharing @ajwilson !

 

A little note about TensorFlow installation, evertyhing could take place from Python tool directly (run Designer as admin for an admin version):

 

Commands:

 

Alteryx.installPackage("tensorflow")
Alteryx.installPackage("protobuf==3.6.0")

 

Results:

 

python_tensorflow.png 

 

Paul Noirel

Sr Customer Support Engineer, Alteryx

cliffjordan
8 - Asteroid

Thanks. This post was extremely helpful. I got a "[Errno 13] Permission denied" when trying to install protobuf 3.6.0 . Using the install command... pip install --user protobuf==3.6.0  solved the issue. 

Labels