Panel: module 'panel' has no attribute 'interact'

Created on 24 Apr 2019  路  16Comments  路  Source: holoviz/panel

When executing the introduction example I get the following error:

AttributeError                            Traceback (most recent call last)
<ipython-input-5-78433f5ebfe2> in <module>
      2 pn.extension()
      3 
----> 4 pn.interact(sine)

AttributeError: module 'panel' has no attribute 'interact'

conda list ouput

# Name                    Version                   Build  Channel
_ipyw_jlab_nb_ext_conf    0.1.0                    py37_0  
alabaster                 0.7.12                   py37_0  
anaconda                  2019.03                  py37_0  
anaconda-client           1.7.2                    py37_0  
anaconda-navigator        1.9.7                    py37_0  
anaconda-project          0.8.2                    py37_0  
appdirs                   1.4.3            py37h28b3542_0  
asn1crypto                0.24.0                   py37_0  
astroid                   2.2.5                    py37_0  
astropy                   3.1.2            py37h7b6447c_0  
atomicwrites              1.3.0                    py37_1  
attrs                     19.1.0                   py37_1  
autopep8                  1.4.3                    py37_0  
babel                     2.6.0                    py37_0  
backcall                  0.1.0                    py37_0  
backports                 1.0                      py37_1  
backports.os              0.1.1                    py37_0  
backports.shutil_get_terminal_size 1.0.0                    py37_2  
beautifulsoup4            4.7.1                    py37_1  
bitarray                  0.8.3            py37h14c3975_0  
bkcharts                  0.2                      py37_0  
blas                      1.0                         mkl  
bleach                    3.1.0                    py37_0  
blosc                     1.15.0               hd408876_0  
bokeh                     1.0.4                    py37_0  
boto                      2.49.0                   py37_0  
bottleneck                1.2.1            py37h035aef0_1  
bzip2                     1.0.6                h14c3975_5  
ca-certificates           2019.1.23                     0  
cairo                     1.14.12              h8948797_3  
certifi                   2019.3.9                 py37_0  
cffi                      1.12.2           py37h2e261b9_1  
chardet                   3.0.4                    py37_1  
click                     7.0                      py37_0  
cloudpickle               0.8.0                    py37_0  
clyent                    1.2.2                    py37_1  
colorama                  0.4.1                    py37_0  
colorcet                  2.0.1                      py_0    pyviz
conda                     4.6.14                   py37_0  
conda-build               3.17.8                   py37_0  
conda-env                 2.6.0                         1  
conda-verify              3.1.1                    py37_0  
contextlib2               0.5.5                    py37_0  
cryptography              2.6.1            py37h1ba5d50_0  
curl                      7.64.0               hbc83047_2  
cycler                    0.10.0                   py37_0  
cython                    0.29.6           py37he6710b0_0  
cytoolz                   0.9.0.1          py37h14c3975_1  
dask                      1.1.4                    py37_1  
dask-core                 1.1.4                    py37_1  
datashader                0.6.8                      py_0    pyviz
datashape                 0.5.4                    py37_1  
dbus                      1.13.6               h746ee38_0  
decorator                 4.4.0                    py37_1  
defusedxml                0.5.0                    py37_1  
distributed               1.26.0                   py37_1  
docutils                  0.14                     py37_0  
entrypoints               0.3                      py37_0  
et_xmlfile                1.0.1                    py37_0  
expat                     2.2.6                he6710b0_0  
fastcache                 1.0.2            py37h14c3975_2  
filelock                  3.0.10                   py37_0  
flask                     1.0.2                    py37_1  
fontconfig                2.13.0               h9420a91_0  
freetype                  2.9.1                h8a8886c_1  
fribidi                   1.0.5                h7b6447c_0  
future                    0.17.1                   py37_0  
get_terminal_size         1.0.0                haa9412d_0  
gevent                    1.4.0            py37h7b6447c_0  
glib                      2.56.2               hd408876_0  
glob2                     0.6                      py37_1  
gmp                       6.1.2                h6c8ec71_1  
gmpy2                     2.0.8            py37h10f8cd9_2  
graphite2                 1.3.13               h23475e2_0  
greenlet                  0.4.15           py37h7b6447c_0  
gst-plugins-base          1.14.0               hbbd80ab_1  
gstreamer                 1.14.0               hb453b48_1  
h5py                      2.9.0            py37h7918eee_0  
harfbuzz                  1.8.8                hffaf4a1_0  
hdf5                      1.10.4               hb1b8bf9_0  
heapdict                  1.0.0                    py37_2  
holoviews                 1.11.0             pyh39e3cac_0    pyviz
html5lib                  1.0.1                    py37_0  
hvplot                    0.4.0                      py_0    pyviz
icu                       58.2                 h9c2bf20_1  
idna                      2.8                      py37_0  
imageio                   2.5.0                    py37_0  
imagesize                 1.1.0                    py37_0  
importlib_metadata        0.8                      py37_0  
intake                    0.4.2                      py_0  
intel-openmp              2019.3                      199  
ipaddress                 1.0.22                   pypi_0    pypi
ipykernel                 5.1.0            py37h39e3cac_0  
ipython                   7.4.0            py37h39e3cac_0  
ipython_genutils          0.2.0                    py37_0  
ipywidgets                7.4.2                    py37_0  
isort                     4.3.16                   py37_0  
itsdangerous              1.1.0                    py37_0  
jbig                      2.1                  hdba287a_0  
jdcal                     1.4                      py37_0  
jedi                      0.13.3                   py37_0  
jeepney                   0.4                      py37_0  
jinja2                    2.10                     py37_0  
jpeg                      9b                   h024ee3a_2  
jsonschema                3.0.1                    py37_0  
jupyter                   1.0.0                    py37_7  
jupyter_client            5.2.4                    py37_0  
jupyter_console           6.0.0                    py37_0  
jupyter_core              4.4.0                    py37_0  
jupyterlab                0.35.4           py37hf63ae98_0  
jupyterlab_server         0.2.0                    py37_0  
keyring                   18.0.0                   py37_0  
kiwisolver                1.0.1            py37hf484d3e_0  
krb5                      1.16.1               h173b8e3_7  
lazy-object-proxy         1.3.1            py37h14c3975_2  
libarchive                3.3.3                h5d8350f_5  
libcurl                   7.64.0               h20c2e04_2  
libedit                   3.1.20181209         hc058e9b_0  
libffi                    3.2.1                hd88cf55_4  
libgcc-ng                 8.2.0                hdf63c60_1  
libgfortran-ng            7.3.0                hdf63c60_0  
liblief                   0.9.0                h7725739_2  
libpng                    1.6.36               hbc83047_0  
libsodium                 1.0.16               h1bed415_0  
libssh2                   1.8.0                h1ba5d50_4  
libstdcxx-ng              8.2.0                hdf63c60_1  
libtiff                   4.0.10               h2733197_2  
libtool                   2.4.6                h7b6447c_5  
libuuid                   1.0.3                h1bed415_2  
libxcb                    1.13                 h1bed415_1  
libxml2                   2.9.9                he19cac6_0  
libxslt                   1.1.33               h7d1a2b0_0  
llvmlite                  0.28.0           py37hd408876_0  
locket                    0.2.0                    py37_1  
lxml                      4.3.2            py37hefd8a0e_0  
lz4-c                     1.8.1.2              h14c3975_0  
lzo                       2.10                 h49e0be7_2  
markupsafe                1.1.1            py37h7b6447c_0  
matplotlib                3.0.3            py37h5429711_0  
mccabe                    0.6.1                    py37_1  
mistune                   0.8.4            py37h7b6447c_0  
mkl                       2019.3                      199  
mkl-service               1.1.2            py37he904b0f_5  
mkl_fft                   1.0.10           py37ha843d7b_0  
mkl_random                1.0.2            py37hd81dba3_0  
more-itertools            6.0.0                    py37_0  
mpc                       1.1.0                h10f8cd9_1  
mpfr                      4.0.1                hdf1c602_3  
mpmath                    1.1.0                    py37_0  
msgpack-numpy             0.4.4.2                  py37_0  
msgpack-python            0.6.1            py37hfd86e86_1  
multipledispatch          0.6.0                    py37_0  
navigator-updater         0.2.1                    py37_0  
nbconvert                 5.4.1                    py37_3  
nbformat                  4.4.0                    py37_0  
ncurses                   6.1                  he6710b0_1  
neobolt                   1.7.4                    pypi_0    pypi
neotime                   1.7.4                    pypi_0    pypi
networkx                  2.2                      py37_1  
nltk                      3.4                      py37_1  
nose                      1.3.7                    py37_2  
notebook                  5.7.8                    py37_0  
numba                     0.43.1           py37h962f231_0  
numexpr                   2.6.9            py37h9e4a6bb_0  
numpy                     1.16.2           py37h7e9f1db_0  
numpy-base                1.16.2           py37hde5b4d6_0  
numpydoc                  0.8.0                    py37_0  
olefile                   0.46                     py37_0  
openpyxl                  2.6.1                    py37_1  
openssl                   1.1.1b               h7b6447c_1  
packaging                 19.0                     py37_0  
pandas                    0.24.2           py37he6710b0_0  
pandoc                    2.2.3.2                       0  
pandocfilters             1.4.2                    py37_1  
panel                     0.1.0a3                    py_0    pyviz
pango                     1.42.4               h049681c_0  
param                     1.9.0                      py_0    pyviz
parso                     0.3.4                    py37_0  
partd                     0.3.10                   py37_1  
patchelf                  0.9                  he6710b0_3  
path.py                   11.5.0                   py37_0  
pathlib2                  2.3.3                    py37_0  
patsy                     0.5.1                    py37_0  
pcre                      8.43                 he6710b0_0  
pep8                      1.7.1                    py37_0  
pexpect                   4.6.0                    py37_0  
pickleshare               0.7.5                    py37_0  
pillow                    5.4.1            py37h34e0f95_0  
pip                       19.0.3                   py37_0  
pixman                    0.38.0               h7b6447c_0  
pkginfo                   1.5.0.1                  py37_0  
pluggy                    0.9.0                    py37_0  
ply                       3.11                     py37_0  
prometheus_client         0.6.0                    py37_0  
prompt_toolkit            2.0.9                    py37_0  
psutil                    5.6.1            py37h7b6447c_0  
ptyprocess                0.6.0                    py37_0  
py                        1.8.0                    py37_0  
py-lief                   0.9.0            py37h7725739_2  
py2neo                    4.2.0                    pypi_0    pypi
pycodestyle               2.5.0                    py37_0  
pycosat                   0.6.3            py37h14c3975_0  
pycparser                 2.19                     py37_0  
pycrypto                  2.6.1            py37h14c3975_9  
pyct                      0.4.6                      py_0    pyviz
pyct-core                 0.4.6                      py_0    pyviz
pycurl                    7.43.0.2         py37h1ba5d50_0  
pyflakes                  2.1.1                    py37_0  
pygments                  2.3.1                    py37_0  
pylint                    2.3.1                    py37_0  
pyodbc                    4.0.26           py37he6710b0_0  
pyopenssl                 19.0.0                   py37_0  
pyparsing                 2.3.1                    py37_0  
pyqt                      5.9.2            py37h05f1152_2  
pyrsistent                0.14.11          py37h7b6447c_0  
pysocks                   1.6.8                    py37_0  
pytables                  3.5.1            py37h71ec239_0  
pytest                    4.3.1                    py37_0  
pytest-arraydiff          0.3              py37h39e3cac_0  
pytest-astropy            0.5.0                    py37_0  
pytest-doctestplus        0.3.0                    py37_0  
pytest-openfiles          0.3.2                    py37_0  
pytest-remotedata         0.3.1                    py37_0  
python                    3.7.3                h0371630_0  
python-dateutil           2.8.0                    py37_0  
python-libarchive-c       2.8                      py37_6  
python-snappy             0.5.3            py37he6710b0_0  
pytz                      2018.9                   py37_0  
pyviz_comms               0.7.2                      py_0    pyviz
pywavelets                1.0.2            py37hdd07704_0  
pyyaml                    5.1              py37h7b6447c_0  
pyzmq                     18.0.0           py37he6710b0_0  
qt                        5.9.7                h5867ecd_1  
qtawesome                 0.5.7                    py37_1  
qtconsole                 4.4.3                    py37_0  
qtpy                      1.7.0                    py37_1  
readline                  7.0                  h7b6447c_5  
requests                  2.21.0                   py37_0  
rope                      0.12.0                   py37_0  
ruamel_yaml               0.15.46          py37h14c3975_0  
scikit-image              0.14.2           py37he6710b0_0  
scikit-learn              0.20.3           py37hd81dba3_0  
scipy                     1.2.1            py37h7c811a0_0  
seaborn                   0.9.0                    py37_0  
secretstorage             3.1.1                    py37_0  
send2trash                1.5.0                    py37_0  
setuptools                40.8.0                   py37_0  
simplegeneric             0.8.1                    py37_2  
singledispatch            3.4.0.3                  py37_0  
sip                       4.19.8           py37hf484d3e_0  
six                       1.12.0                   py37_0  
snappy                    1.1.7                hbae5bb6_3  
snowballstemmer           1.2.1                    py37_0  
sortedcollections         1.1.2                    py37_0  
sortedcontainers          2.1.0                    py37_0  
soupsieve                 1.8                      py37_0  
sphinx                    1.8.5                    py37_0  
sphinxcontrib             1.0                      py37_1  
sphinxcontrib-websupport  1.1.0                    py37_1  
spyder                    3.3.3                    py37_0  
spyder-kernels            0.4.2                    py37_0  
sqlalchemy                1.3.1            py37h7b6447c_0  
sqlite                    3.27.2               h7b6447c_0  
statsmodels               0.9.0            py37h035aef0_0  
sympy                     1.3                      py37_0  
tblib                     1.3.2                    py37_0  
terminado                 0.8.1                    py37_1  
testpath                  0.4.2                    py37_0  
tk                        8.6.8                hbc83047_0  
toolz                     0.9.0                    py37_0  
tornado                   6.0.2            py37h7b6447c_0  
tqdm                      4.31.1                   py37_1  
traitlets                 4.3.2                    py37_0  
unicodecsv                0.14.1                   py37_0  
unixodbc                  2.3.7                h14c3975_0  
urllib3                   1.24.1                   py37_0  
wcwidth                   0.1.7                    py37_0  
webencodings              0.5.1                    py37_1  
werkzeug                  0.14.1                   py37_0  
wheel                     0.33.1                   py37_0  
widgetsnbextension        3.4.2                    py37_0  
wrapt                     1.11.1           py37h7b6447c_0  
wurlitzer                 1.0.2                    py37_0  
xarray                    0.11.3                   py37_0  
xlrd                      1.2.0                    py37_0  
xlsxwriter                1.1.5                    py37_0  
xlwt                      1.3.0                    py37_0  
xz                        5.2.4                h14c3975_4  
yaml                      0.1.7                had09818_2  
zeromq                    4.3.1                he6710b0_3  
zict                      0.1.4                    py37_0  
zipp                      0.3.3                    py37_1  
zlib                      1.2.11               h7b6447c_3  
zstd                      1.3.7                h0b5b093_0 

All 16 comments

The current version of Panel is 0.5.1, and you should upgrade to it if you want to use interact. So that we can avoid others having the same problem, how did you end up with 0.1.0a3, which is many releases behind at this point (and not even an actual release!)?

Oh, good catch!
I just used conda install -c pyviz panel. Maybe there are some conflicting packages?

I had the same problem when I tried to install panel to a colleague on an anaconda installation. I tried to install it on the base environment of a new conda. I never found how to solve it since I use only pip in my own computers

I think there are probably two problems here, then. First is that alpha releases somehow made it onto the main pyviz channel:

image

Second is that somehow your environment is not allowing the installation of later versions of panel, perhaps because you have some packages pinned. We can fix the first problem by removing those bogus alpha packages so that they are never selected. The second problem is likely not up to us to address, but to do with other packages that conflict with panel's requirements.

@philippjfr, is there any reason to keep the main label on the a2 and a3 packages? Somehow conda has installed 0.1.0a3 667 times!

No I'll remove those tonight.

maybe this is also interesting:

conda install -c pyviz panel==0.5.1

Collecting package metadata: done
Solving environment: done

## Package Plan ##

  environment location: /home/dario/anaconda3

  added / updated specs:
    - panel==0.5.1


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    bokeh-1.1.0                |           py37_0         6.3 MB
    holoviews-1.12.1           |             py_0         3.2 MB  pyviz
    markdown-3.1               |           py37_0         113 KB
    panel-0.5.1                |             py_0         279 KB  pyviz
    testpath-0.3.1             |           py37_0          90 KB
    ------------------------------------------------------------
                                           Total:        10.0 MB

The following NEW packages will be INSTALLED:

  markdown           pkgs/main/linux-64::markdown-3.1-py37_0

The following packages will be REMOVED:

  anaconda-2019.03-py37_0

The following packages will be UPDATED:

  bokeh                                        1.0.4-py37_0 --> 1.1.0-py37_0
  holoviews                             1.11.0-pyh39e3cac_0 --> 1.12.1-py_0
  panel                                        0.1.0a3-py_0 --> 0.5.1-py_0

The following packages will be DOWNGRADED:

  testpath                                     0.4.2-py37_0 --> 0.3.1-py37_0


Proceed ([y]/n)? 

That seems like a reasonable installation plan to me, though I don't know what "anaconda-2019.03-py37_0" achieves; maybe it was pinning a bokeh version.

That package was also conflicting with spacy. Maybe there is some issue with the current anaconda release.

Installing panel 0.5.1 fixed the original problem, though.

I really love the whole pyviz endeavor, btw! Thank you, guys! :)

The anaconda package is a metapackage which specifies exact versions of a number of commonly used data science libraries which are tested for compatibility. Each anaconda version specifies a set of library versions which were available at the time of the anaconda release . Since these version are fixed in the anaconda package it is expected that upgrading one of these libraries will require the removal of the anaconda package. In this particular case, the anaconda 2019.03 package requires bokeh 1.0.4 so upgrading this package requires removing anaconda. This is fine, all the other libraries are still available.

@jjhelmus, thanks for the explanation! In this case, it sounds like having the anaconda package installed makes conda prefer an ancient version of panel (nine releases behind the current version), because that ancient version failed to specify what bokeh version it requires, and thus could be installed without requiring changing the bokeh version and thus forcing removal of anaconda.

We'll fix that at our end by removing the older panel packages, and maybe that's the only fix needed.

Still, it seems like very unintuitive behavior for an explicit user action of conda install -c pyviz panel. If I as a user explicitly request a package, I would typically expect to get the latest release without having to think much about it, or at least a recent release. Maybe that's not possible to achieve without violating some other conda behavior, but perhaps the anaconda package and some other metapackages could somehow be marked as having a very low priority to remain installed?

I'd want our pyviz metapackage to behave the same way -- install a consistent set of packages when it's first installed, but if someone explicitly installs a later package that forces upgrades, quickly decide to remove the pyviz metapackage while leaving the rest in place, so that you do what the user asked. But I can easily imagine other metapackages that would want to behave differently, rigidly ensuring a set of matched packages and never getting removed automatically, so there may be no simple way around this behavior.

Maybe there could at least be a big warning when falling back to such an outdated release, along with an explanation of why that was forced? I know that's a lot of logic and reasoning to ask for, though...

Still, it seems like very unintuitive behavior for an explicit user action of conda install -c pyviz panel. If I as a user explicitly request a package, I would typically expect to get the latest release without having to think much about it, or at least a recent release.

This is the behavior of conda, the version of packages specified on the command line are maximized given the current channel priority and satisfiability conditions prior to other solver optimization. I am not sure how the older version of panel was installed into the environment @fedario described. When I create an environment with anaconda 2019.03 and then install panel from the pyviz channel I get the latest version, 0.5.1:

~$ conda create -n test anaconda=2019.03
Collecting package metadata: done
Solving environment: done

## Package Plan ##

  environment location: /home/jhelmus/anaconda3/envs/test

  added / updated specs:
    - anaconda=2019.03
...
~$ conda activate test
(test) ~$ conda install -c pyviz panel
Collecting package metadata: done
Solving environment: done

## Package Plan ##

  environment location: /home/jhelmus/anaconda3/envs/test

  added / updated specs:
    - panel


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    bokeh-1.1.0                |           py37_0         6.3 MB  defaults
    markdown-3.1               |           py37_0         113 KB  defaults
    panel-0.5.1                |             py_0         279 KB  pyviz
    param-1.9.0                |             py_0          75 KB  pyviz
    pyct-0.4.6                 |             py_0           3 KB  pyviz
    pyct-core-0.4.6            |             py_0          12 KB  pyviz
    pyviz_comms-0.7.2          |             py_0          10 KB  pyviz
    testpath-0.3.1             |           py37_0          90 KB  defaults
    ------------------------------------------------------------
                                           Total:         6.9 MB

The following NEW packages will be INSTALLED:

  markdown           pkgs/main/linux-64::markdown-3.1-py37_0
  panel              pyviz/noarch::panel-0.5.1-py_0
  param              pyviz/noarch::param-1.9.0-py_0
  pyct               pyviz/noarch::pyct-0.4.6-py_0
  pyct-core          pyviz/noarch::pyct-core-0.4.6-py_0
  pyviz_comms        pyviz/noarch::pyviz_comms-0.7.2-py_0

The following packages will be REMOVED:

  anaconda-2019.03-py37_0

The following packages will be UPDATED:

  bokeh                                        1.0.4-py37_0 --> 1.1.0-py37_0

The following packages will be DOWNGRADED:

  testpath                                     0.4.2-py37_0 --> 0.3.1-py37_0

testpath is downgraded as panel 0.5.1 restricts the package to <0.4. Is there something unexpected in this behavior?

I did find that conda install -c pyviz pyviz requires a downgrade to Python 3.6. My guess is that there is a requirement that is missing or in conflict that prevent Python 3.7 from being used. I'll investigate this further.

We usually pin the pyviz package very precisely to ensure that everyone has very similar packages when we run tutorials. We will update the pyviz package to latest versions very soon and unpin 3.6, so I don't think you need to investigate further.

We'll take care of pyviz, but this issue is really about panel.

@jjhelmus, it looks like @philippjfr removed the bogus main label from the alpha packages panel-0.1.0a3 and panel-0.1.0a2 last night as I requested. From your results today, it looks like that change did fix this specific issue, as I had expected it would; users now get the latest panel because there's no distracting older version of panel without a conflicting pin of bokeh. That's great, and this specific issue is now gone for us.

Still, that's just a local fix for panel, and it seems like the same problem will occur for _any_ package that has ancient versions not pinning something in Anaconda Distribution, and current versions that do pin in a way that conflicts with the installed Anaconda Distribution.

Still, that's just a local fix for panel, and it seems like the same problem will occur for _any_ package that has ancient versions not pinning something in Anaconda Distribution, and current versions that do pin in a way that conflicts with the installed Anaconda Distribution.

Although not specific to the anaconda package, conda will prefer a lower package version if that version it compatible with the packages already installed in the environment and the newer version requires changes to the existing packages. In these types of cases it can be difficult to determine the behavior a user would prefer, some users want conda to make the fewest changes to the environment necessary to install the new package, others want newer versions at the expense of changing more packages in the environment. Conda provide flags which can be used to control some of this behavior. In particular --update-deps will update the dependencies of the package(s) specified on the command line which should result in installation of the latest version in (nearly?) all cases.

@jjhelmus, thanks for the background. I guess I'm wishing that packages installed with the anaconda-2019.03 metapackage not be considered precious compared to the package the user explicitly requested from the command line, i.e. not to consider such "came for free" packages to be needing to be preserved by default, compared to ones the user previously explicitly requested or were dependencies of some real package they user explicitly requested (not just something that came with the base distribution). Sure, a user can explicitly add --update-deps, but it's hard to see how they will realize they need to do that; conda will just happily install an ancient version and they'll run into problems as found here. But that's an extra level of complexity to add to conda just to try to get it to behave more reasonably in cases like this, and surely would cause some other unreasonable behavior, so it seems unlikely to be feasible. I guess we'll just try to make sure that the packages we use don't have any ancient, dependency-less versions hanging around for the unwary.

Was this page helpful?
0 / 5 - 0 ratings