start ipython notebook with python file

后端 未结 4 1207
既然无缘
既然无缘 2021-02-04 20:09

I am not very familiar with python/ipython but somebody was asking me whether it is possible to start an ipython notebook with a specific python file. It then could be used for

相关标签:
4条回答
  • 2021-02-04 20:58

    Since the question is quite broad and asking for recommendations, here are my suggestions:

    1. cross-platform nbopen, which opens ipynb using command-line or optional explorer integration:

    https://github.com/takluyver/nbopen

    Please note that I have one open ticket for complete Windows explorer integration:

    https://github.com/takluyver/nbopen/issues/12

    [copied from github page]

    Installation:

    pip install nbopen
    

    Usage:

    nbopen AwesomeNotebook.ipynb
    
    1. run ipynb without launching the browser interface, with many useful options:

    https://github.com/paulgb/runipy

    [copied from github page]

    Installation:

    $ pip install runipy
    

    To run a .ipynb file as a script, run:

    $ runipy MyNotebook.ipynb
    

    To save the output of each cell back to the notebook file, run:

    $ runipy -o MyNotebook.ipynb
    

    To save the notebook output as a new notebook, run:

    $ runipy MyNotebook.ipynb OutputNotebook.ipynb
    

    To run a .ipynb file and generate an HTML report, run:

    $ runipy MyNotebook.ipynb --html report.html
    
    0 讨论(0)
  • 2021-02-04 20:58

    If you're talking about launching an iPython notebook server via Python, I use this:

    #!/usr/bin/env python
    from IPython.terminal.ipapp import launch_new_instance
    from IPython.lib import passwd
    from socket import gethostname
    import warnings
    warnings.filterwarnings("ignore", module = "zmq.*")
    sys.argv.append("notebook")
    sys.argv.append("--IPKernelApp.pylab='inline'")
    sys.argv.append("--NotebookApp.ip=" + gethostname())
    sys.argv.append("--NotebookApp.open_browser=False")
    sys.argv.append("--NotebookApp.password=" + passwd())
    launch_new_instance()
    

    Obviously you can change the arguments if you so desire.

    At my work we have one use case that does what you're saying--automatically generates a python file, then loads a new ipython server for the user to access it. However, it's a pretty special use case--for normal debugging, I would recommend just starting in iPython and not making your *.py file until the bugs are gone.

    OR

    If you're talking about actually automatically navigating to the page that corresponds to a python file made available by an ipython notebook server, then (1) make sure you're using ipython 2, and (2) figure out what you're desired url is (it should be deterministic) and (3) use the webbrowser module to navigate to that url.

    0 讨论(0)
  • 2021-02-04 20:59

    To start a ipython notebook with a certain notebook directory, use the --notebook-dir command line option:

    ipython notebook --notebook-dir=/Users/harold/temp/
    
    0 讨论(0)
  • 2021-02-04 21:07
    import subprocess, os
    
    def executeJupyter():
        env_dir = "../main_env_dir/"
        os.chdir(env_dir)
    
        # source jupyter_env/bin/activate
        env_activate = "jupyter_env/bin/activate_this.py"
    
        activate_env = exec(open(env_activate).read(), {'__file__': env_activate})
    
        # Open jupyter notebook as a subprocess
        openJupyter = "jupyter notebook"
        subprocess.Popen(openJupyter, shell=True)
    
     executeJupyter()
    

    Make sure you change the env_dir (directory where you have the env of your jupyter notebook) and the env_activate to your own.

    0 讨论(0)
提交回复
热议问题