
可以自定义组件,然后每个组件对应 jupyter 的一个单元格,就可以可视化低代码开发了

我想利用 pycharm 对 python 代码的自动补全功能(包括点击跳转定义等),在 pycharm 里打开 ipynb 文件,可以连接到多个不同的远程 jupyter 服务端,理想中应该切换连接到某个服务端,python 解析器自动使用那个服务端环境的,这样在服务端上装的第三方包都能识别,实际上却不行,python 解析器我需要选择本地的,对于服务端装的包,本地也装个对应的包,然后 pycharm 里才有自动补全功能,我能理解,但这样很蛋疼。
如果不要自动补全,那是能用的,对于第三方包,虽然 pycharm 的 jupyter notebook 里显示报错了,但运行时,代码是能在远程服务器上正常运行的,但这样就没编码体验了,变回了最原始的纯文本编辑。
另外是发现有 jupyter 的自动补全插件,但这种方式不太喜欢,更喜欢 pycharm IDE 里强大的各种功能支持。
难道 pycharm 在远程相关开发上真的不如 vscode ?我找不到更好的办法了。
具体场景描述:jupyter 运行在远程 docker 容器上( docker 容器里的 conda 虚拟环境里),pycharm 在本地运行,ipynb 也在本地打开(指定 jupyter server 为远程的地址)。
]]>class A, 再在第二个单元格定义class A 就会报错,也就是说他们是有关联的, 有没有什么办法取消他们两个之间的关联?
]]>
]]>
]]>附: 有没有大佬知道怎么在服务器打开图片时进行本地展示,在以上给出环境下该如何配置?
]]>anaconda3 环境,开始时没有报错,更新 jupyterlab 后,从 Anaconda Navigator 启动 jupyterlab 弹窗 Application launch error:"Exception: Jupyter command jupyter-lab not found."。但是,在 cmd 使用 jupyter-lab 能正常启动,而 jupyter lab 仍然抱相同错误。
jupyter lab 、jupyter notebook 、jupyter kernelspec 等,都是相似的错误。使用 jupyter-kernelspec 正常。
感谢!!!!
]]>from ctypes import * libc = cdll.LoadLibrary('msvcrt.dll') libc.printf(c_char_p(b'Hello %d %.2f\n'), c_int(16), c_double(2.3)) 在标准交互环境中显示内容为:
Hello 16 2.30 14 在 ipython 中,显示内容为:
Hello 16 2.30 Out[31]: 14 在 jupyter 中,显示内容为:
Out[15]: 14 请问在 jupyter 中如何显示“Hello 16 2.30”
]]> File "c:\python36\venv\lib\site-packages\jupyter_core\application.py", line 156, in write_default_config f.write(config_text) UnicodeEncodeError: 'gbk' codec can't encode character '\xb6' in position 8440: illegal multibyte sequence 查看“jupyter_core\application.py”内容如下:
with open(config_file, mode='w') as f: f.write(config_text) 改成:
with open(config_file, mode='w', encoding='utf-8') as f: f.write(config_text) 重新执行,执行成功,不再报错
这是 bug 吗?我要去提个 issue 吗?
]]>可是 notebook 中的图片不会转换进 markdown 里,所以有较多图片的 notebook 转换成 markdown 就没啥意义了
我看了下 notebook 是把图片内嵌进 xxx.ipynb 文件中的,要是转换成 markdown 时也能将图片内嵌进 markdown 就好了
]]>JupyterLab 安装 extension (插件)时,如果你之前装过这个插件又卸载过,那么重装这个插件的话,该插件即使安装过程中正常也无法加载。如果你使用jupyter labextension list命令,会发现该插件会在 installed 和 uninstalled 中同时出现。
目前有效的解决办法是删除your_python_venv_dir/share/jupyter/lab/settings/build_config.json,所有插件的卸载记录会被清空,重新安装插件再 build 即可。
for i in range(N): for j in range(M): print('更新进度条') print('显示图片') 
项目地址: https://github.com/ruoyu0088/cooknotebook
其中关于 Python 实现原理的方面有一些有趣的东西。
例如:为整数对象添加迭代功能
让 Python 支持:
for i in 10: print(i) d = deque(range(10)) print(d[-3:]) ]]>
]]>浏览器打开了,但是无法显示此页,或者连接超时,无法访问此网站 摊手~~
]]>看了下支持语言很全~ 不知实际用起来如何? 看起来很爽的样子,准备学点 go~~ 
结果现在卡在 Supervisor 管理 Jupyter Notebook 上了。废话少说,贴代码:
# 这分别是 supervisord 和 Jupyter 程序的配置 [supervisord] logfile=/home/supervisord/supervisord.log ; (main log file;default $CWD/supervisord.log) logfile_maxbytes=50MB ; (max main logfile bytes b4 rotation;default 50MB) logfile_backups=10 ; (num of main logfile rotation backups;default 10) loglevel=info ; (log level;default info; others: debug,warn,trace) pidfile=/home/supervisord/supervisord.pid ; (supervisord pidfile;default supervisord.pid) nodaemon=false ; (start in foreground if true;default false) minfds=1024 ; (min. avail startup file descriptors;default 1024) minprocs=200 ; (min. avail process descriptors;default 200) ;umask=022 ; (process file creation umask;default 022) ;user=chrism ; (default is current user, required if root) ;identifier=supervisor ; (supervisord identifier, default is 'supervisor') ;directory=/tmp ; (default is not to cd during start) ;nocleanup=true ; (don't clean up tempfiles at start;default false) ;childlogdir=/tmp ; ('AUTO' child log dir, default $TEMP) ;envirOnment=KEY="value" ; (key value pairs to add to environment) ;strip_ansi=false ; (strip ansi escape codes in logs; def. false) [program:jupyter-notebook] user=xff command=bash /home/xff/bin/start_notebook.sh process_name=ipython_notebook envirOnment=HOME="/home/xff/" numprocs=1 numprocs_start=3 direcotory=/home/xff/Documents stdout_logfile=/home/supervisord/jupyter-notebook.log ; stdout log path, NONE for none; default AUTO stdout_logfile_maxbytes=1MB ; max # logfile bytes b4 rotation (default 50MB) stdout_logfile_backups=10 ; # of stdout logfile backups (default 10) stdout_capture_maxbytes=1MB ; number of bytes in 'capturemode' (default 0) stdout_events_enabled=false ; emit events on stdout writes (default false) stderr_logfile=/home/supervisord/jupyter-notebook.err ; stderr log path, NONE for none; default AUTO stderr_logfile_maxbytes=1MB ; max # logfile bytes b4 rotation (default 50MB) stderr_logfile_backups=10 ; # of stderr logfile backups (default 10) stderr_capture_maxbytes=1MB ; number of bytes in 'capturemode' (default 0) stderr_events_enabled=false ; emit events on stderr writes (default false) stopsignal=KILL stopwaitsecs=5 ;autostart=true ;autorestart=true # /home/xff/bin/start_notebook.sh 文件, Jupyter Notebook 的启动脚本 #!/bin/bash NOTEBOOK_CMD="/home/xff/.virtualenvs/jupyter/bin/jupyter-notebook --cOnfig=/home/xff/.jupyter/jupyter_notebook_config.py" echo $NOTEBOOK_CMD >> /home/xff/log $NOTEBOOK_CMD 通过 supervisorctl 启动 Jupyter Notebook 后,进程树是这样的:
root 5004 0.0 1.3 207632 13264 ? Ss 16:51 0:00 /usr/local/Python-2.7.11/bin/python2.7 /usr/local/Python-2.7.11/bin/supervisord -c /etc/supervisord.conf --user=root xff 5142 0.1 0.1 106100 1220 ? S 17:00 0:00 \_ bash /home/xff/bin/start_notebook.sh xff 5143 7.8 3.4 286876 35104 ? S 17:00 0:00 \_ /home/xff/.virtualenvs/jupyter/bin/python2.7 /home/xff/.virtualenvs/jupyter/bin/jupyter-notebook --cOnfig=/home/xff/.jupyter/jupyter_notebook_config.py 在 supervisorctl 上停止 Jupyter Notebook 之后,进程树就变成这样了,
root 3196 0.0 0.1 42708 1836 ? Ss 15:33 0:00 nginx: master process nginx www 3728 0.0 0.2 43124 2196 ? S 16:03 0:02 \_ nginx: worker process www 3729 0.0 0.2 43124 2196 ? S 16:03 0:01 \_ nginx: worker process root 5004 0.0 1.3 207784 13336 ? Ss 16:51 0:00 /usr/local/Python-2.7.11/bin/python2.7 /usr/local/Python-2.7.11/bin/supervisord -c /etc/supervisord.conf --user=root xff 5143 0.2 3.4 286876 35104 ? S 17:00 0:00 /home/xff/.virtualenvs/jupyter/bin/python2.7 /home/xff/.virtualenvs/jupyter/bin/jupyter-notebook --cOnfig=/home/xff/.jupyter/jupyter_notebook_config.py 很明显, Jupyter Notebook 的进程并没有被停止,它变成了孤儿进程,被 Init 收养了。
我开始以为是 supervisor 发送的停止信号不对,后来吧 supervisor 配置文件中,程序的停止信号stopsignal变成了kill还是不行,但如果我在命令行中执行
# Jupyter Notebook 默认监听的是 8888 端口 kill -9 `lsof -ti:8888` 是可以的!
万能的 V 友们,给点提示吧,这是什么原因啊,从哪里入手解决呀!
]]>Jupyter是一个基于IPython Notebook的项目,我记得最开始 Jupyter 的目标还是致力于在 IPython Notebook 上通过扩展各种内核实现对不同编程语言的支持,但是现在再来看已经变成了“支持跨语言的交互式数据科学和科学计算”:
support interactive data science and scientific computing across all programming languages.
我一直还是把 Jupyter 当做一个好用的 Markdown 编辑器以及其他编程语言的虚拟运行环境来用,并没有关注过项目具体的发展。前段时间Github 支持渲染.ipynb文件(测试:test_jupyter.ipynb),以及后来 Google 开源的Deepdream项目,通过 IPython Notebook 可视化图片分类的深度学习过程中相邻神经网络层次之间的信息传递(我怀疑是不是这个大新闻促使了 Jupyter 向数据科学方向的转变?),可以看到 Jupyter 挑了一个热门或者正确的方向去发展。我这次打算用它来做Lua和Torch7的学习笔记与交互展示,再去看官方文档,甚至已经开始脱离IPython走向独立。
提到 Lua 很多人第一反应就是“写游戏的”(我最初接触它也是因为Cocos2d-Lua), Cocos2d-x 中的 Lua 只是 C/C++的 binding , Lua 的定位本身就是跨平台嵌入式脚本语言。 Lua 可能并不像其它语言那么热门,我看到有人认为“说 Python 是 Toy Language 是因为你没用过 Lua ”:P。国内社区似乎不怎么活跃,在用的人仍然在用,不用的人也有大把大把新的语言和框架涌现出来可供选择。在国内提到 Lua 不得不提的云风和他的天网-skynet;最近锤子赞助了OpenResty也就是Nginx_lua;之前上过纽约时报的neuraltalk(自动生成场景图片的文字描述)从 Python+numpy 转到 Torch (neuraltalk2)。这些是进入我视线范围内的 Lua 的进展,也就是集中于后端服务程序和机器学习(数据科学)。
Torch 之于 Lua ( LuaJIT )就像 Numpy 之于 Python ,不仅如此, Torch 还提供了神经网络模型和 GPU 的支持。为了更方便调试和展示运算过程, Facebook 开源了iTorch - IPython(Jupyter) Kernel for Torch ,其中可视化展现的部分由Bokeh.js提供,效果如下:

System: Ubuntu 14.04.3 LTS (GNU/Linux 3.13.0-67-generic x86_64)
1. install torch
基本上按照官网的步骤就可以了,时间会比较长,尤其是在网速比较慢的时候:
# in a terminal, run the commands curl -s https://raw.githubusercontent.com/torch/ezinstall/master/install-deps | bash git clone https://github.com/torch/distro.git /torch --recursive cd /torch; ./install.sh 上面的步骤会先安装 LuaJIT 和 Lua 的包管理工具Luarocks。
2. install Jupyter
按照Jupyter 文档,如果没装pip3先装起来:
sudo apt-get install build-essential python3-dev # 还有下面这一步 sudo apt-get install python3-pip 然后安装 Jupiter (国内网络记得换国内 pip 镜像):
pip3 install jupyter -i http://pypi.douban.com/simple 3. install iTorch
首先安装ZeroMQ依赖:
sudo apt-get install libzmq3-dev 然后下载安装 iTorch :
git clone https://github.com/facebook/iTorch.git cd iTorch luarocks make 首先查看是否存在 Jupyter 配置文件,若没有则新建一份:
ls ~/.jupyter # 如果没有 jupyter_notebook_config.py 则执行 jupyter notebook --generate-config 准备 Hased Password :
# IPython from notebook.auth import passwd passwd('mypassword') # Output => 'sha1:67c9e60bb8b6:9ffede0825894254b2e042ea597d771089e11aed' 更改 ~/.jupyter/jupyter_notebook_config.py:
# 去掉 c.NotebookApp.password 注释 c.NotebookApp.password = u'sha1:67c9e60bb8b6:9ffede0825894254b2e042ea597d771089e11aed' c.NotebookApp.ip = '*' c.NotebookApp.open_browser = False 5. Run itorch & Hello iTorch
一切准备就绪,运行itorch notebook!
感兴趣的可以尝试一下:Hello iTorch,合理使用,切勿乱搞~Password('rainy.im')。