小编Opp*_*ppy的帖子

在jupyter notebook单元格中使用click库

有没有办法在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()
Run Code Online (Sandbox Code Playgroud)

输出:选项:{'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 …
Run Code Online (Sandbox Code Playgroud)

python-3.x jupyter-notebook

5
推荐指数
1
解决办法
923
查看次数

在 Sublime Text 3 中运行 Python 时如何删除输出缓冲

构建 Python 3 脚本时,如何从 Sublime Text 3 中删除输出缓冲?我想要实时输出。

我正在使用带有 Anaconda 插件、Python 3.6 和 Linux Mint 18 的 Sublime Text 3。当我使用 control-b 运行一个简单的脚本时:

print('hello')
Run Code Online (Sandbox Code Playgroud)

我在一个名为“构建输出”的单独窗口中得到一个即时输出。当我使用具有重复输出的脚本时,例如:

from time import sleep

count = 0
print('starting')
while True:
    print('{} hello'.format(count))
    count += 1
    sleep(0.5)
Run Code Online (Sandbox Code Playgroud)

最初我在“构建输出”中得到一个空白屏幕。一段时间后,它填充了数百行输出。看起来输出正在被缓冲。当缓冲区已满时,它会立即将所有内容输出到“构建输出”屏幕。

编辑 Sublime Text 允许自定义构建配置。默认的 Python 构建是针对 Python 2 的。我输入了 Python 3 的构建配置,但错过了 -u 标志。解决方法是将 -u 标志放在 Python 3 构建中。

文件:Python3.sublime-build

{
    "shell_cmd": "/usr/bin/env python3 -u ${file}",
    "selector": "source.python",
    "file_regex": "^(...*?):([0-9]*):?([0-9]*)",
    "working_dir": "${file_path}",
}
Run Code Online (Sandbox Code Playgroud)

保存在 sublime_install/Data/Packages/User/Python3.sublime-build

python sublimetext3

5
推荐指数
1
解决办法
815
查看次数

如何为 micropython 编写测试

我想为我正在为 micro:bit 编写的 micropython 代码编写测试。这里的例子使用doctest。我愿意接受任何测试系统的变通方案。

名为testing_python.py 的工作Python 示例:

def sum(a, b):
    '''
    >>> sum(3, 0)
    3
    '''
    return a + b

print(sum(2,2))
Run Code Online (Sandbox Code Playgroud)

当我测试时使用:

python -m doctest -v testing_python.py 

Run Code Online (Sandbox Code Playgroud)

我得到:

4
Trying:
    sum(3, 0)
Expecting:
    3
ok
Run Code Online (Sandbox Code Playgroud)

使用 micropython 作为 micro:bit 的失败示例,名为testing_micropython.py:

from microbit import *

def sum(a, b):
    '''
    >>> sum(3, 0)
    3
    '''
    return a + b

print(sum(2,2))
Run Code Online (Sandbox Code Playgroud)

当我测试时使用:

python -m doctest -v testing_micropython.py 
Run Code Online (Sandbox Code Playgroud)

我明白了

Traceback (most recent call last):
...
ModuleNotFoundError: No module named 'microbit'
Run Code Online (Sandbox Code Playgroud)

我尝试将“import microbit”语句包装在 try, …

doctest micropython bbc-microbit

3
推荐指数
1
解决办法
1541
查看次数