在Jupyter Notebook单元中使用单击库

鸦片

有没有办法在Jupyter笔记本单元中使用单击库?我想在笔记本中将标志传递给我的Jupyter笔记本代码,以使其更平滑地过渡到独立脚本。例如,从Jupyter笔记本单元使用OptionParser:

from optparse import OptionParser
import sys


def main():
    parser = OptionParser()
    parser.add_option('-f', '--fake',
                    default='False',
                help='Fake data')
    (options,args) = parser.parse_args()
    print('options:{} args: {}'.format(options, args))
    if options.fake:
        print('Fake detected')

def test_args():

    print('hello')

if __name__ == '__main__':

    sys.argv = ['--fake', 'True' '--help']
    main()

输出:options:{'fake':'False'} args:['True--help']检测到伪造

使用点击库,我得到一连串的错误。我从Jupyter笔记本电脑单元运行了以下代码:

import click

@click.command()
@click.option('--count', default=1, help='Number of greetings.')
@click.option('--name', prompt='Your name',
            help='The person to greet.')
def hello(count, name):
    """Simple program that greets NAME for a total of COUNT times."""
    for x in range(count):
        click.echo('Hello %s!' % name)

if __name__ == '__main__':
    hello()

Ouput(截断):

UnsupportedOperation                      Traceback (most recent call last)
<ipython-input-6-ad31be7bf0fe> in <module>()
    12 if __name__ == '__main__':
    13     sys.argv = ['--count', '3']
---> 14     hello()

~/.local/lib/python3.6/site-packages/click/core.py in __call__(self, *args, **kwargs)
    720     def __call__(self, *args, **kwargs):
    721         """Alias for :meth:`main`."""
--> 722         return self.main(*args, **kwargs)
    723 
    724 
...
257 
    258     if message:
--> 259         file.write(message)
    260     file.flush()
    261 

UnsupportedOperation: not writable
迈克·米勒

您可以使用%%pythonmagic命令来启动新的Python流程:

%%python

import sys
import click

@click.command()
@click.option('--count', default=1, help='Number of greetings.')
@click.option('--name', prompt='Your name',
            help='The person to greet.')
def hello(count, name):
    """Simple program that greets NAME for a total of COUNT times."""
    with open('echo.txt', 'w') as fobj:
        for x in range(count):
            click.echo('Hello %s!' % name)

if __name__ == '__main__':
    # first element is the script name, use empty string instead
    sys.argv = ['', '--name', 'Max', '--count', '3']
    hello()

输出:

Hello Max!
Hello Max!
Hello Max!

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Ipython中使用Pylint(Jupyter-Notebook)

在Jupyter Notebook中使用Ctypes

如何在Jupyter Notebook中使用破折号?

如何在Pandas和Jupyter Notebook中使用可单击的超链接创建表

在Jupyter iPython Notebook中使用matplotlib绘制图形

在Jupyter Notebook中使用Tkinter

在Jupyter Notebook中使用Pandas表的IPython.display时如何在单元格周围包括边框

如何在Visual Studio 2017中使用Jupyter Notebook?

在Jupyter Notebook单元的输出上运行测试

单击无法在jupyter中使用

无法在Jupyter Notebook中使用Pyodbc模块

如何在Jupyter Notebook中使用PySpark时包含外部Spark库

在Jupyter Notebook中使用watson_developer_cloud时出错

在Jupyter Notebook中使用%% time在连续单元格中更改变量范围

在Jupyter Notebook中使用Match替代Find and Replace Utility

在Jupyter Notebook中使用cython进行行轮廓分析

在Jupyter Notebook中使用Python虚拟环境

如何使用PySpark升级Qubole的Jupyter Notebook中的库?

在Jupyter Notebook中使用conda环境

在Jupyter Notebook Rpy2中的R单元中使用熊猫数据框时出错

如何在代码单元格中使用行号将Jupyter Notebook导出为html

我无法在硒Jupyter Notebook中使用click()函数

使用 Jupyter 导入的库?

在 Jupyter Notebook 中使用 plotly 抛出异常创建图形

在 jupyter notebook 中使用 python 循环播放声音

Jupyter Notebook 中使用 matplotlib 的快速图像序列/动画

在 jupyter notebook 中使用未上传的文件

在 Python Jupyter Notebook 中使用 Selenium 单击下拉列表

在 Jupyter notebook 中使用 main 方法调用 Python 文件