2017-08-12 34 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)) 
    

    此致

    巴勃羅

    相關問題