Python/Jupyter: Difference between revisions
< Python
No edit summary |
|||
Line 45: | Line 45: | ||
= Autorun notebooks on startup = | = Autorun notebooks on startup = | ||
== simple, but no start/stop control later == | |||
* /home/user/.ipython/profile_default/startup/startup.ipy | * /home/user/.ipython/profile_default/startup/startup.ipy | ||
<pre> | <pre> | ||
Line 51: | Line 52: | ||
%run /srv/python/script_a.ipynb | %run /srv/python/script_a.ipynb | ||
</pre> | </pre> | ||
== complex, with full control == | |||
* /home/user/.ipython/profile_default/startup/startup.ipy | |||
<blockquote> | |||
<pre> | |||
#!/usr/bin/ipython | |||
%run /srv/python/startup.ipynb | |||
</pre> | |||
</blockquote> | |||
* /srv/python/startup.ipynb | |||
<blockquote> | |||
<pre> | |||
from selenium import webdriver | |||
from selenium.webdriver.common.by import By | |||
urls = ["http://192.168.111.11:8888/notebooks/projects/test.ipynb"] | |||
def start_notebook(url): | |||
browser = webdriver.PhantomJS(service_args=['--ssl-protocol=any']) | |||
browser.set_window_size(1280, 1400) | |||
browser.implicitly_wait(10) | |||
browser.get(url) | |||
browser.find_element(By.LINK_TEXT, 'Cell').click() | |||
browser.find_element(By.LINK_TEXT, 'Run All').click() | |||
browser.quit() | |||
for url in urls: | |||
print ("starting: " + url) | |||
start_notebook(url) | |||
</pre> | |||
</blockquote> | |||
= Initial Setup = | = Initial Setup = |
Revision as of 11:51, 21 March 2018
Magic Functions
Timing
- %timeit (time line)
- %%timeit (time block in lines below, same line = not timed setup)
importing other jupyter notebook
- run.ipynb:
% run 'lib_testprog.ipynb' testfunct()
- lib_testprog.ipynb:
def testfunct() return 1 if __name__ == '__main__' and '__file__' not in globals(): print(testfunct())
sharing variables between notebooks
- test1.ipynb:
variable = 'testdata' %store variable
- test2.ipynb:
%store -r variable print(variable)
- hints:
- use "global" in functions
Autorun notebooks on startup
simple, but no start/stop control later
- /home/user/.ipython/profile_default/startup/startup.ipy
#!/usr/bin/ipython %run /srv/python/script_a.ipynb
complex, with full control
- /home/user/.ipython/profile_default/startup/startup.ipy
#!/usr/bin/ipython %run /srv/python/startup.ipynb
- /srv/python/startup.ipynb
from selenium import webdriver from selenium.webdriver.common.by import By urls = ["http://192.168.111.11:8888/notebooks/projects/test.ipynb"] def start_notebook(url): browser = webdriver.PhantomJS(service_args=['--ssl-protocol=any']) browser.set_window_size(1280, 1400) browser.implicitly_wait(10) browser.get(url) browser.find_element(By.LINK_TEXT, 'Cell').click() browser.find_element(By.LINK_TEXT, 'Run All').click() browser.quit() for url in urls: print ("starting: " + url) start_notebook(url)
Initial Setup
Installation
apt install python3-pip python3-setuptools pip3 install --upgrade pip pip3 install jupyter
Config
- full width:
- ~/.jupyter/custom/custom.css
.container { width:100% !important; }
- autostart from rc.local
sudo -u pi /usr/local/bin/jupyter-notebook --config=/home/pi/.jupyter/jupyter_notebook_config.py
- create config file
jupyter notebook --generate-config
- insecure access without token/password (/home/pi/.jupyter/jupyter_notebook_config.py)
c.NotebookApp.ip = '*' c.NotebookApp.notebook_dir = '/srv/Python' c.NotebookApp.open_browser = False c.NotebookApp.password = '' c.NotebookApp.token = ''
nbextensions
pip3 install jupyter_contrib_nbextensions jupyter contrib nbextension install --user
- codefolding
- Codefolding in editor
- Collapsible Headings
- Table of contents
- Variable inspector
- Toggle all line numbers