使PyCharm识别Sage python解释器

本文介绍了如何使PyCharm识别并使用Sage的Python解释器,包括设置环境变量、添加解释器到PyCharm项目、配置运行环境,以及在调试Sage数学库代码时的注意事项。

使PyCharm识别Sage python解释器

最近需要阅读 AES 的 Sage 数学库里面 的Python实现代码《rijndael_gf.py

从 Sage 命令行,到 Jupyter Notebook ,再到 JupyterLab,感觉还是不过瘾

为啥?因为对于KY数学刚过线的人来说,没有好的调试器,怎么写代码?

于是乎 =====> 网上一搜,还果然实现了 PyCharm 调试 Sage 数学库 的 Python 源代码的方法,在此 Mark 一下!

网上该问题的解决方法是  sagemath.org 论坛里面的:

https://ask.sagemath.org/question/39742/make-pycharm-recognise-the-sage-python-interpreter/

翻译过来:

我发现最简单的方法是首先在Windows环境中设置一些永久性环境变量。这可以通过Windows中的GUI或cmd控制台来完成。设置必要变量的控制台命令为:

setx Path "%Path%;C:\Program Files\SageMath 8.1\runtime\opt\sagemath-8.1\local\lib;C:\Program Files\SageMath 8.1\runtime\opt\sagemath-8.1\local\bin;C:\Program Files\SageMath 8.1\runtime\bin;C:\Program Files\SageMath 8.1\runtime\lib\lapack"
setx SAGE_ROOT /opt/sagemath-8.1
setx SAGE_LOCAL /opt/sagemath-8.1/local
setx DOT_SAGE /dot_sage

可能还应该设置其他一些设置,但这是我发现让Sage的Python解释器在PyCharm中愉快地工作所必需的最低限度。

然后,我们需要正确地将Sage的Python解释器添加到PyCharm的可用解释器列表中。在“欢迎”屏幕上,单击小“配置”齿轮,然后从菜单中选择“设置”:

在设置页面中,选择“项目解释器”-您可以在此处添加其他解释器以在整个项目中使用。对于可能已经存在的解释器,此处显示的内容可能有所不同。

单击可用口译员的下拉列表旁边右上角的小齿轮图标,然后从菜单中选择“添加本地”。然后从解释器类型列表中选择“系统解释器”:

浏览到下的python2.7.exe可执行文件C:\Program Files\SageMath 8.1\runtime\opt\sagemath-8.1\local\bin(或者您可以直接将此路径复制到文件浏览器中):

如果您设置了正确的环境变量,PyCharm应该能够成功执行Sage的Python解释器,并填充为该解释器安装的软件包列表,您将看到类似以下的内容:

如果您没有Path正确设置环境变量,那么您将在此处收到错误消息(它可能显示“权限错误”或类似的内容)。这是因为Windows使用Path环境变量来搜索DLL,并且需要添加正确的路径才能找到Cygwin DLL。否则,解释器可执行文件甚至无法启动。如果发生这种情况,您仍然可以继续添加该解释器,但是只有设置了必要的环境变量后,该解释器才起作用。

然后,当您开始一个新项目时,请确保选择Sage Python作为默认解释器(您也可以将它与virtualenv一起使用,但我没有尝试过-如果您确保它继承了系统站点-packages,否则您就无法获得Sage等。)一般而言,我认为没有必要:

最后,PyCharm还允许您设置环境变量,以在几个不同的位置按项目运行解释器。您可以在“运行”配置中配置环境变量,然后在控制台设置中再次(单独地,不幸地)进行配置。这实际上是我最初所做的-我只是在PyCharm中设置了PathSAGE_ROOT等等,效果也很好。但是我发现在环境中永久设置环境变量更为简单。然后事情就“奏效”。

请注意,这仍然只是普通的Python解释器,而不是Sage解释器,因此它不知道如何运行.sage文件,也不知道Sage语法。

但是您应该能够  from sage.all import *  在普通的Python中使用Sage对象。

 

我的系统及编程环境是:   Linux  +  PyCharm  + Sage 

不多说了,直接上图:

①设置解释器:

②新建项目,两个文件: main.py  和  正在调试修改的 RijindaelGF_JSLS.sage.py 。

       注意:  一是 main.py 中: 在第二行   load("RijndaelGF_JSLS.sage.py")  之前, 先加一句:  from sage.all import *  导入所有 Sage 库需要的东东!

                    二是:复制 RijndaelGF.sage 的一个副本, 并将后缀名改为 RijndaelGF_JSLS.sage.py ,否则会报错!

 

③调试走起!

④下个断点,直接 步进 进去瞅瞅!

 

最后,再回头看看 之前用的  JupyterLab!  Server/Browser 方式:

 

评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值