Emacs 如何在内联源代码中使用来自组织模式源块的变量?

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

我有一个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_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

导出组织文件时,将替换该值。您是对的。我没有意识到我必须指定内联源链接到同一个会话。我只是错过了那个。谢谢