question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

einsteinpy.symbolic.tensor.tensor_product is not available in Google Colab (einsteinpy version 0.3.1)

See original GitHub issue

🐞 Problem

I am trying to use the tensor_product function from the API doc here: https://docs.einsteinpy.org/en/stable/api/symbolic/tensor.html

I am using Google Colab, where I have installed einsteinpy==0.3.1

upon calling from einsteinpy.symbolic.tensor import tensor_product, I get the error:

ImportError: cannot import name 'tensor_product'

The name tensorproduct does exist, but does not have the functionality I need.

A link to my colab notebook is here: https://colab.research.google.com/drive/1fctmN_MGExFy24fqB7q2IIVl9IRnCRdP?usp=sharing

🖥 Please paste the output of following commands

  • pip freeze

Paste your output here:

absl-py==0.10.0 alabaster==0.7.12 albumentations==0.1.12 altair==4.1.0 appdirs==1.4.4 argon2-cffi==20.1.0 asgiref==3.3.1 astor==0.8.1 astropy==4.1 astunparse==1.6.3 async-generator==1.10 atari-py==0.2.6 atomicwrites==1.4.0 attrs==20.3.0 audioread==2.1.9 autograd==1.3 Babel==2.9.0 backcall==0.2.0 beautifulsoup4==4.6.3 bleach==3.3.0 blis==0.4.1 bokeh==2.1.1 Bottleneck==1.3.2 branca==0.4.2 bs4==0.0.1 CacheControl==0.12.6 cachetools==4.2.1 catalogue==1.0.0 certifi==2020.12.5 cffi==1.14.4 chainer==7.4.0 chardet==3.0.4 click==7.1.2 cloudpickle==1.3.0 cmake==3.12.0 cmdstanpy==0.9.5 colorlover==0.3.0 community==1.0.0b1 contextlib2==0.5.5 convertdate==2.3.0 coverage==3.7.1 coveralls==0.5 crcmod==1.7 cufflinks==0.17.3 cvxopt==1.2.5 cvxpy==1.0.31 cycler==0.10.0 cymem==2.0.5 Cython==0.29.21 daft==0.0.4 dask==2.12.0 dataclasses==0.8 datascience==0.10.6 debugpy==1.0.0 decorator==4.4.2 defusedxml==0.6.0 descartes==1.1.0 dill==0.3.3 distributed==1.25.3 Django==3.1.6 dlib==19.18.0 dm-tree==0.1.5 docopt==0.6.2 docutils==0.16 dopamine-rl==1.0.5 earthengine-api==0.1.238 easydict==1.9 ecos==2.0.7.post1 editdistance==0.5.3 einsteinpy==0.3.1 en-core-web-sm==2.2.5 entrypoints==0.3 ephem==3.7.7.1 et-xmlfile==1.0.1 fa2==0.3.5 fancyimpute==0.4.3 fastai==1.0.61 fastdtw==0.3.4 fastprogress==1.0.0 fastrlock==0.5 fbprophet==0.7.1 feather-format==0.4.1 filelock==3.0.12 firebase-admin==4.4.0 fix-yahoo-finance==0.0.22 Flask==1.1.2 flatbuffers==1.12 folium==0.8.3 future==0.16.0 gast==0.3.3 GDAL==2.2.2 gdown==3.6.4 gensim==3.6.0 geographiclib==1.50 geopy==1.17.0 gin-config==0.4.0 glob2==0.7 google==2.0.3 google-api-core==1.16.0 google-api-python-client==1.7.12 google-auth==1.25.0 google-auth-httplib2==0.0.4 google-auth-oauthlib==0.4.2 google-cloud-bigquery==1.21.0 google-cloud-bigquery-storage==1.1.0 google-cloud-core==1.0.3 google-cloud-datastore==1.8.0 google-cloud-firestore==1.7.0 google-cloud-language==1.2.0 google-cloud-storage==1.18.1 google-cloud-translate==1.5.0 google-colab==1.0.0 google-pasta==0.2.0 google-resumable-media==0.4.1 googleapis-common-protos==1.52.0 googledrivedownloader==0.4 graphviz==0.10.1 grpcio==1.32.0 gspread==3.0.1 gspread-dataframe==3.0.8 gym==0.17.3 h5py==2.10.0 HeapDict==1.0.1 hijri-converter==2.1.1 holidays==0.10.5.2 holoviews==1.13.5 html5lib==1.0.1 httpimport==0.5.18 httplib2==0.17.4 httplib2shim==0.0.3 humanize==0.5.1 hyperopt==0.1.2 ideep4py==2.0.0.post3 idna==2.10 image==1.5.33 imageio==2.4.1 imagesize==1.2.0 imbalanced-learn==0.4.3 imblearn==0.0 imgaug==0.2.9 importlib-metadata==3.4.0 importlib-resources==5.1.0 imutils==0.5.4 inflect==2.1.0 iniconfig==1.1.1 intel-openmp==2021.1.2 intervaltree==2.1.0 ipykernel==4.10.1 ipython==5.5.0 ipython-genutils==0.2.0 ipython-sql==0.3.9 ipywidgets==7.6.3 itsdangerous==1.1.0 jax==0.2.9 jaxlib==0.1.60+cuda101 jdcal==1.4.1 jedi==0.18.0 jieba==0.42.1 Jinja2==2.11.3 joblib==1.0.0 jpeg4py==0.1.4 jsonschema==2.6.0 jupyter==1.0.0 jupyter-client==5.3.5 jupyter-console==5.2.0 jupyter-core==4.7.1 jupyterlab-pygments==0.1.2 jupyterlab-widgets==1.0.0 kaggle==1.5.10 kapre==0.1.3.1 Keras==2.4.3 Keras-Preprocessing==1.1.2 keras-vis==0.4.1 kiwisolver==1.3.1 knnimpute==0.1.0 korean-lunar-calendar==0.2.1 librosa==0.8.0 lightgbm==2.2.3 llvmlite==0.34.0 lmdb==0.99 lucid==0.3.8 LunarCalendar==0.0.9 lxml==4.2.6 Markdown==3.3.3 MarkupSafe==1.1.1 matplotlib==3.2.2 matplotlib-venn==0.11.6 missingno==0.4.2 mistune==0.8.4 mizani==0.6.0 mkl==2019.0 mlxtend==0.14.0 more-itertools==8.6.0 moviepy==0.2.3.5 mpmath==1.1.0 msgpack==1.0.2 multiprocess==0.70.11.1 multitasking==0.0.9 murmurhash==1.0.5 music21==5.5.0 natsort==5.5.0 nbclient==0.5.1 nbconvert==5.6.1 nbformat==5.1.2 nest-asyncio==1.5.1 networkx==2.5 nibabel==3.0.2 nltk==3.2.5 notebook==5.3.1 np-utils==0.5.12.1 numba==0.51.2 numexpr==2.7.2 numpy==1.19.5 nvidia-ml-py3==7.352.0 oauth2client==4.1.3 oauthlib==3.1.0 okgrade==0.4.3 opencv-contrib-python==4.1.2.30 opencv-python==4.1.2.30 openpyxl==2.5.9 opt-einsum==3.3.0 osqp==0.6.2.post0 packaging==20.9 palettable==3.3.0 pandas==1.1.5 pandas-datareader==0.9.0 pandas-gbq==0.13.3 pandas-profiling==1.4.1 pandocfilters==1.4.3 panel==0.9.7 param==1.10.1 parso==0.8.1 pathlib==1.0.1 patsy==0.5.1 pexpect==4.8.0 pickleshare==0.7.5 Pillow==7.0.0 pip-tools==4.5.1 plac==1.1.3 plotly==4.4.1 plotnine==0.6.0 pluggy==0.7.1 pooch==1.3.0 portpicker==1.3.1 prefetch-generator==1.0.1 preshed==3.0.5 prettytable==2.0.0 progressbar2==3.38.0 prometheus-client==0.9.0 promise==2.3 prompt-toolkit==1.0.18 protobuf==3.12.4 psutil==5.4.8 psycopg2==2.7.6.1 ptyprocess==0.7.0 py==1.10.0 pyarrow==0.14.1 pyasn1==0.4.8 pyasn1-modules==0.2.8 pycocotools==2.0.2 pycparser==2.20 pyct==0.4.8 pydata-google-auth==1.1.0 pydot==1.3.0 pydot-ng==2.0.0 pydotplus==2.0.2 PyDrive==1.3.1 pyemd==0.5.1 pyglet==1.5.0 Pygments==2.6.1 pygobject==3.26.1 pymc3==3.7 PyMeeus==0.3.7 pymongo==3.11.3 pymystem3==0.2.0 pynndescent==0.5.1 PyOpenGL==3.1.5 pyparsing==2.4.7 pyrsistent==0.17.3 pysndfile==1.3.8 PySocks==1.7.1 pystan==2.19.1.1 pytest==3.6.4 python-apt==1.6.5+ubuntu0.5 python-chess==0.23.11 python-dateutil==2.8.1 python-louvain==0.15 python-slugify==4.0.1 python-utils==2.5.6 pytz==2018.9 pyviz-comms==2.0.1 PyWavelets==1.1.1 PyYAML==3.13 pyzmq==22.0.2 qdldl==0.1.5.post0 qtconsole==5.0.2 QtPy==1.9.0 regex==2019.12.20 requests==2.23.0 requests-oauthlib==1.3.0 resampy==0.2.2 retrying==1.3.3 rpy2==3.2.7 rsa==4.7 scikit-image==0.16.2 scikit-learn==0.22.2.post1 scipy==1.4.1 screen-resolution-extra==0.0.0 scs==2.1.2 seaborn==0.11.1 Send2Trash==1.5.0 setuptools-git==1.2 Shapely==1.7.1 simplegeneric==0.8.1 six==1.15.0 sklearn==0.0 sklearn-pandas==1.8.0 smart-open==4.1.2 snowballstemmer==2.1.0 sortedcontainers==2.3.0 SoundFile==0.10.3.post1 spacy==2.2.4 Sphinx==1.8.5 sphinxcontrib-serializinghtml==1.1.4 sphinxcontrib-websupport==1.2.4 SQLAlchemy==1.3.23 sqlparse==0.4.1 srsly==1.0.5 statsmodels==0.10.2 sympy==1.1.1 tables==3.4.4 tabulate==0.8.7 tblib==1.7.0 tensorboard==2.4.1 tensorboard-plugin-wit==1.8.0 tensorboardcolab==0.0.22 tensorflow==2.4.1 tensorflow-addons==0.8.3 tensorflow-datasets==4.0.1 tensorflow-estimator==2.4.0 tensorflow-gcs-config==2.4.0 tensorflow-hub==0.11.0 tensorflow-metadata==0.27.0 tensorflow-privacy==0.2.2 tensorflow-probability==0.12.1 termcolor==1.1.0 terminado==0.9.2 testpath==0.4.4 text-unidecode==1.3 textblob==0.15.3 textgenrnn==1.4.1 Theano==1.0.5 thinc==7.4.0 tifffile==2020.9.3 toml==0.10.2 toolz==0.11.1 torch==1.7.0+cu101 torchsummary==1.5.1 torchtext==0.3.1 torchvision==0.8.1+cu101 tornado==5.1.1 tqdm==4.41.1 traitlets==4.3.3 tweepy==3.6.0 typeguard==2.7.1 typing-extensions==3.7.4.3 tzlocal==1.5.1 umap-learn==0.5.0 uritemplate==3.0.1 urllib3==1.24.3 vega-datasets==0.9.0 wasabi==0.8.2 wcwidth==0.2.5 webencodings==0.5.1 Werkzeug==1.0.1 widgetsnbextension==3.5.1 wordcloud==1.5.0 wrapt==1.12.1 xarray==0.15.1 xgboost==0.90 xkit==0.0.0 xlrd==1.1.0 xlwt==1.3.0 yellowbrick==0.9.1 zict==2.0.0 zipp==3.4.0

  • python -c "import einsteinpy.testing; einsteinpy.testing.test()"

Paste your output here:

============================= test session starts ============================== platform linux – Python 3.6.9, pytest-3.6.4, py-1.10.0, pluggy-0.7.1 rootdir: /usr/local, inifile: setup.cfg plugins: typeguard-2.7.1 collected 239 items

…/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_bodies.py . [ 0%] … [ 10%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_constant.py . [ 10%] … [ 11%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_examples.py . [ 12%] . [ 12%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_geodesics.py . [ 12%] … [ 14%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_coordinates/test_conversions.py . [ 14%] … [ 17%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_coordinates/test_coord_transform.py . [ 17%] … [ 24%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_coordinates/test_velocity_transform.py . [ 24%] … [ 28%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_hypersurface/test_schwarzschildembedding.py . [ 29%] … [ 30%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_ijit/test_ijit_without_numba.py . [ 30%] [ 30%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_integrators/test_runge_kutta.py . [ 31%] [ 31%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_metric/test_kerr.py . [ 31%] … [ 34%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_metric/test_kerrnewman.py . [ 34%] … [ 36%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_metric/test_schwarzschild.py . [ 36%] … [ 40%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_plotting/test_fractal.py . [ 40%] . [ 41%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_plotting/test_hypersurface.py . [ 41%] . [ 41%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_plotting/test_geodesics/test_interactive.py . [ 42%] … [ 43%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_plotting/test_geodesics/test_static.py . [ 44%] … [ 47%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_plotting/test_rays/test_shadow.py . [ 47%] . [ 48%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_symbolic/test_christoffel.py . [ 48%] … [ 50%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_symbolic/test_constants.py . [ 51%] . [ 51%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_symbolic/test_einstein.py . [ 51%] … [ 53%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_symbolic/test_helpers.py . [ 53%] x… [ 57%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_symbolic/test_metric.py . [ 57%] … [ 60%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_symbolic/test_ricci.py . [ 60%] … [ 63%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_symbolic/test_riemann.py . [ 63%] … [ 64%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_symbolic/test_schouten.py . [ 65%] … [ 66%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_symbolic/test_stress_energy_momentum.py . [ 66%] … [ 67%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_symbolic/test_tensor.py . [ 68%] …xxxxx…xF… [ 76%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_symbolic/test_vector.py . [ 77%] x… [ 78%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_symbolic/test_weyl.py . [ 79%] … [ 81%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_symbolic/test_predefined/test_all.py . [ 81%] … [ 91%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_symbolic/test_predefined/test_find.py . [ 91%] . [ 92%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_utils/test_kerr_utils.py . [ 92%] … [ 95%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_utils/test_kerrnewman_utils.py . [ 95%] … [ 99%] …/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_utils/test_schwarzschild_utils.py . [100%]

=================================== FAILURES =================================== ______ test_BaseRelativityTensor_automatic_calculation_of_free_variables _______

def test_BaseRelativityTensor_automatic_calculation_of_free_variables():
  t1, variables, functions = arbitrary_tensor1()

/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_symbolic/test_tensor.py:201:


/usr/local/lib/python3.6/dist-packages/einsteinpy/tests/test_symbolic/test_tensor.py:78: in arbitrary_tensor1 return BaseRelativityTensor(list2d, syms, config=“ll”), [a, c], [f1, f2, f3] /usr/local/lib/python3.6/dist-packages/einsteinpy/symbolic/tensor.py:301: in init v for v in self.arr.free_symbols if v not in self.syms /usr/local/lib/python3.6/dist-packages/sympy/core/basic.py:501: in free_symbols return set().union([a.free_symbols for a in self.args]) /usr/local/lib/python3.6/dist-packages/sympy/core/basic.py:501: in <listcomp> return set().union([a.free_symbols for a in self.args])


self = (-af1(a, x2)/x1 + 1, 0, 0, 5f2©, 0, -1/(c2*(-a/x1 + 1)), f3, 0, 0, f3, -x12/c2, 0, 5*f2©, 0, 0, -x12*sin(x2)2/c2)

@property
def free_symbols(self):
    """Return from the atoms of self those which are free symbols.

        For most expressions, all symbols are free symbols. For some classes
        this is not true. e.g. Integrals use Symbols for the dummy variables
        which are bound variables, so Integral has a method to return all
        symbols except those. Derivative keeps track of symbols with respect
        to which it will perform a derivative; those are
        bound variables, too, so it has its own free_symbols method.

        Any other method that uses bound variables should implement a
        free_symbols method."""
  return set().union(*[a.free_symbols for a in self.args])

E TypeError: ‘property’ object is not iterable

/usr/local/lib/python3.6/dist-packages/sympy/core/basic.py:501: TypeError =============================== warnings summary =============================== lib/python3.6/dist-packages/einsteinpy/tests/test_bodies.py::test_predefined_bodies_base_properties[obj0-parent0-R0-mass0] /usr/local/lib/python3.6/dist-packages/statsmodels/tools/_testing.py:19: FutureWarning:

pandas.util.testing is deprecated. Use the functions in the public API at pandas.testing instead.

lib/python3.6/dist-packages/einsteinpy/tests/test_plotting/test_hypersurface.py::test_plot_calls_plt_show /usr/local/lib/python3.6/dist-packages/numpy/core/_asarray.py:136: VisibleDeprecationWarning:

Creating an ndarray from ragged nested sequences (which is a list-or-tuple of lists-or-tuples-or ndarrays with different lengths or shapes) is deprecated. If you meant to do this, you must specify ‘dtype=object’ when creating the ndarray

– Docs: http://doc.pytest.org/en/latest/warnings.html ======== 1 failed, 230 passed, 8 xfailed, 2 warnings in 205.76 seconds =========

🎯 Goal

I have multiple tensors that I want to multiply and contract with each other, and the tensor_product function is very convenient to that end.

💡 Possible solutions

This seems like an easy fix; the function is already written in the github repo.

I think I can also use a combination of tensorproduct and tensorcontraction (and will try to do so in the meanwhile), but I’d like to be able to use the tensor_product function if possible.

📋 Steps to solve the problem

This is an install problem, so there is nothing I can do.

Issue Analytics

  • State:closed
  • Created 3 years ago
  • Comments:15 (12 by maintainers)

github_iconTop GitHub Comments

1reaction
WenyinWeicommented, May 5, 2021

Sad news, hoping things get better soon for you.

Will be releasing a new version this week and most likely today itself. Sorry for the delay. The covid situation here is pretty bad 😕 _______________________________________ This email is sent from a smartphone. Please ignore grammatical mistakes and typographical errors.


On Wed, 5 May, 2021, 9:33 am Wenyin Wei, @.***> wrote: Hi, I have met the same issue with python v3.7.5, with einsteinpy v0.3.1 installed today via pip. The tensor_product function is still missing indeed (05/05/2021). Shall we update the v0.3.1 pip tarball or upload a new one with the latest einsteinpy version? Or just modify the v0.3.1 doc? The difference between doc and code indeed makes users lost and confused. einsteinpy’s tensor functionality is much better than sympy, and easier to understand. Thank you for such a brilliant masterpiece. — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub <#574 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AFZCK6SNRSSPIWFORCPSLTTTMC7P7ANCNFSM4XJ7OKCA .

1reaction
j1ng3rcommented, Feb 12, 2021

I just wanted to say thank you so much for creating and maintaining this project. It really brings power to ordinary programmers to study and use tensors in curved spaces.

I have written my own function to multiply and contract tensors, so this is not an issue for me anymore. If you’d like, I can keep the issue open for the time being.

Read more comments on GitHub >

github_iconTop Results From Across the Web

einsteinpy.symbolic.tensor.tensor_product is not ... - Issuehunt
einsteinpy.symbolic.tensor.tensor_product is not available in Google Colab (einsteinpy ... I am using Google Colab, where I have installed einsteinpy==0.3.1.
Read more >
einsteinpy - Bountysource
I am using Google Colab, where I have installed einsteinpy==0.3.1. upon calling from einsteinpy.symbolic.tensor import tensor_product , I get the error:.
Read more >
Source code for einsteinpy.symbolic.tensor
Source code for einsteinpy.symbolic.tensor. import numpy as np import sympy from sympy import simplify, tensorcontraction, tensorproduct from ...
Read more >
EinsteinPy - Read the Docs
Symbolic Calculation of various quantities. • Christoffel Symbols. • Riemann Curvature Tensor. • Ricci Tensor. • Index uppering and lowering! • ...
Read more >
einsteinpy - PyPI
EinsteinPy is an open source pure Python package dedicated to problems arising in ... Symbolic Manipulations of various tensors like Metric, Riemann, Ricci, ......
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found