2017-08-12 35 views
0

设置:在Windows 10 为什么Pymacs返回(pymacs-python。n)?

  • Pymacs 0.25
  • 蟒蛇的Python 3.5.1
  • Pymacs运行良好

    1. 的Emacs 25.2.1。我可以从Emacs成功运行pymacs-eval和pymacs-exec命令。例如,评估了以下工作:

      (require 'pymacs)  
      (pymacs-exec "from scipy.stats import norm;") 
      (pymacs-exec "import numpy as np;") 
      (pymacs-exec "np.set_printoptions(threshold=np.nan);") 
      (pymacs-eval "norm.ppf(0.95)") 
      

      最后一行返回

      1.6448536269514722 
      

      我有是,一些标准的Python 3.x的语句返回一些奇怪的事情回到Emacs的问题。特别是,如果我跑

      (pymacs-eval "import numpy as np;") 
      (pymacs-eval "np.max(np.array([[1,1],[2,4]]))") 
      

      我回来

      (pymacs-python . 1479) 
      

      如果运行

      (pymacs-load "numpy" "np-") 
      (np-max (np-array '((1 1) (2 4)))) 
      

      最后一行返回

      (pymacs-python . 1479) 
      

      这似乎发生每当我尝试从Em中传递任何类型的列表acs通过Pymacs的Python Lisp。有人知道这些“(pymacs-python。n)”是什么意思吗?

    回答

    0

    找到答案花了相当多的工作。当Pymacs不理解由特定Python函数产生的结构时,就会出现这个问题。在Numpy的情况下,Pymacs不知道如何解析Numpy数组。诀窍是将numpy数组转换为标准的Python列表。

    下面是一个例子:

    (require 'pymacs) 
    (pymacs-exec "import numpy as np") 
    (pymacs-eval "np.ndarray.tolist(np.asarray([[1,2],[3,4]]))") 
    

    这将产生

    '((1 2) (3 4)) 
    

    此致

    巴勃罗

    相关问题