tonyfast / literacy

Interactive literate programming in the Jupyter notebooks
BSD 3-Clause "New" or "Revised" License
7 stars 1 forks source link

ModuleNotFoundError: No module named 'importable' #1

Open akvadrako opened 7 years ago

akvadrako commented 7 years ago

I can't figure out what this is supposed to be, but this line in init.py prevents the extension from being loaded.

tonyfast commented 7 years ago

Thanks for the interest @akvadrako .

What it does

literacy is a Jupyter notebook extension that permits markdown as source for code cells. It is a markdown repl to put it simply. When each code cell is evaluated...

  1. The code is rendered as Markdown.
  2. The codespans are concatenated in a single block of python source.
  3. The source is evaluated.

The Issue

/literacy uses jupyter notebooks as the python source files; importable is the tool that enables this. pip install git+https://github.com/tonyfast/importable should do the trick.

akvadrako commented 7 years ago

Thanks. It looks potentially interesting. I've just starting playing with Jupyter last week and I find needing to create separate markdown and code cells to be less than ideal.

It seems there is another missing dependency for the toolz package.

tonyfast commented 7 years ago

pip install toolz is a functional programming module for python, and it has some of the best documentation around. Functional programming in literate documents has a few effects:

  1. FP can enhance the narrative significantly by dropping some cognitive load on naming for both author and reader.
  2. FP creates inherently denser code blocks placing more focus on the rich text.
  3. In FP, code acts more as a verb; OOP creates nouns. Literate documents written with FP can take on an active voice.

Are you using a standard python distribution or Anaconda? I ask because toolz comes with Anaconda. Anaconda is a python distribution centered around scientific and numeric computing that ships Jupyter plus a few other IDEs. Anaconda may save you some headaches in the future when you are using Jupyter.

akvadrako commented 7 years ago

I don't use anaconda, but it would be fine if you would add toolz to your setup.py dependencies. Then it'll install automatically for non-anaconda users.

tonyfast commented 7 years ago

Thanks. I am not good a packaging problems. That was simple toolz was added to setup.py.