Emacs 如何在内联源代码中使用来自组织模式源块的变量?
我有一个python源代码块,它获取熊猫数据帧中变量(列)和事例的数量 最简单的例子:Emacs 如何在内联源代码中使用来自组织模式源块的变量?,emacs,org-mode,Emacs,Org Mode,我有一个python源代码块,它获取熊猫数据帧中变量(列)和事例的数量 最简单的例子: #+begin_src python :exports none :session :results output df = pd.DataFrame({'a': [1, 2, 3], 'b': [4, 5, 6]}) df_len_columns = len(df.columns) df_len_cases = len(df.index) #+end_s
#+begin_src python :exports none :session :results output
df = pd.DataFrame({'a': [1, 2, 3],
'b': [4, 5, 6]})
df_len_columns = len(df.columns)
df_len_cases = len(df.index)
#+end_src
我现在想做的是在内联源代码中使用这些变量的值,如下所示:
变量的数量是src_python{df_len_columns}
,案例的数量是src_python{df_len_cases}
但这会引发以下错误:
NameError: name 'df_len_columns' is not defined
请注意,我使用session参数:session
,认为它将是同一个会话的一部分,并且可以工作。我也在网上广泛搜索,但找不到这个问题的解决方案(大多数问题都是关于表的内联代码和内联代码格式)
是否确实要内联使用这些变量?如果我理解正确,您希望将多个源代码块链接到同一进程 它非常简单:
#+BEGIN_SRC ipython :results output :session testing
a = 5
#+END_SRC
#+RESULTS:
#+BEGIN_SRC ipython :results value :session testing
a
#+END_SRC
#+RESULTS:
: # Out[6]:
: : 5
在本例中,两个源块是链接的
您还可以将所有源块合并到一个.py
文件中。
使用
M-x org babel tangle file
,每次运行该命令时,该文件都将使用新的tangle进行更新。看起来您需要告诉内联源代码使用头参数引用会话:
src_python[:session]{df_len_columns}
一般形式是src_[]{}
。组织手册中列出了可能的标题参数:
注意:当通过
org export dispatch
导出组织文件时,将替换该值。您是对的。我没有意识到我必须指定内联源链接到同一个会话。我只是错过了那个。谢谢