有没有办法在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 脚本时,如何从 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
我想为我正在为 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, …