SageMath折腾笔记

2019-02-23  本文已影响0人  粗识名姓

GitHub下载
安装无需多言,注意记住Select Sage home directory的路径(默认是系统当前用户目录),使用过程中经常用到。建议:C:\Users\用户名\Sage

2019-02-23_124727.png

安装完成后,开始菜单有三个快捷方式,对应三种使用途径,最简单常用的应该就是Notebook了,但是在中文系统中这个快捷方式有点问题,无法直接使用。

先打开SageMath 8.x Shell命令行模式,执行jupyter notebook
错误提示如下:

...
 File "/opt/sagemath-8.6/local/lib/python2.7/site-packages/traitlets/config/application.py"...
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 4: ordinal not in range(128)

参考:github issues
解决:执行命令前面插入LANG=zn
LANG=zn jupyter notebook

页面错误:

File "/opt/sagemath-8.6/local/lib/python2.7/site-packages/notebook/services/contents/filemanager.py", line 322, in _dir_model st = os.lstat(os_path) UnicodeEncodeError: 'ascii' codec can't encode characters in position 11-16: ordinal not in range(128)

参考:CSDN博文
解决:
修改文件SageMath 8.x安装目录下runtime\opt\sagemath-8.6\local\lib\python2.7\site-packages\notebook\services\contents\filemanager.py
代码322行改成:st = os.lstat(os_path.decode('utf-8').encode('gb18030'))

Notebook快捷方式修改:
mintty.exe参数改为 -t 'SageMath 8.6 Notebook Server' -i sagemath.ico /bin/bash --login -c 'LANG=zn /opt/sagemath-8.6/sage --notebook jupyter'

jupyter配置文件
SageMath 8.x安装目录下runtime\opt\sagemath-8.6\local\etc\jupyter\jupyter_notebook_config.py
修改方法参考

matplotlib中文字体配置 参考
SageMath 8.x shell没有集成字体相关命令,所以不能完全照着参考中的方法操作!
下面以微软雅黑字体的安装为例:

  1. 下载ttf格式的微软雅黑字体文件
  2. 解压至Sagemath 8.x目录下runtime\usr\share\fonts\microsoft
  3. 编辑用户目录中的文件\.sage\matplotlib-1.5.1\fontList.json
    在合适的位置插入下面代码
{
  "_class": "FontManager", 
  "ttflist": [
  ...
    {
      "style": "normal", 
      "name": "Microsoft YaHei", 
      "weight": "roman", 
      "fname": "/usr/share/fonts/microsoft/msyh.ttf", 
      "stretch": "normal", 
      "_class": "FontEntry", 
      "variant": "normal", 
      "size": "scalable"
    }, 
  ...
  ], 
  ...
  "ttffiles": [
  ...
    "/usr/share/fonts/microsoft/msyh.ttf", 
  ...
  ], 
  1. 如果有正在运行的Jupyter processes,需要关闭后重新运行才能生效。
    关闭正在运行的Jupyter processes

仍然存在的问题:路径中不能含有中文!尽管有些解决方案(参考),但似乎对SageMath中的jupyter无效!

升级命令
pip途径:pip install --upgrade notebook
conda途径:conda upgrade notebook
jupyter 和 notebook分别进行升级

上一篇下一篇

猜你喜欢

热点阅读