如何在VS Code中运行Markdown文档中的一段(Anaconda)Python代码?

watbbzwu  于 2023-05-19  发布在  Python
关注(0)|答案(1)|浏览(230)

我在VS Code中的Markdown文档中有一些围栏的Python代码。Python代码输入被解析和呈现,但Python代码不被解释,其输出也不被呈现。
MWE:在Markdown.md文件中,我尝试沿着以下几种变体:

```python {cmd = '/Users/john/anaconda3/bin/python'}
    x = 3
    y = 5
    print(x + y)
    ```

代码块的输入在Markdown中呈现,但输出不会。I get an error而不是答案8。这似乎对某些人有效,但对其他人无效,请参阅Stackoverflow中的this question
这可能是由于以下一个或两个原因:
1.我有Python的Anaconda发行版。在我的Mac上,anaconda和python都不在PATH中,这是Anaconda的默认设置:参见Anaconda FAQ。仅当conda环境被激活时,PATH才被动态地和本地地预先挂起。这是为了避免包依赖性问题。

  1. VS代码可能具有禁止代码执行的安全设置,以避免恶意代码的问题。仅供参考,我在VS Code中的“Markdown Preview Enhanced”扩展中将“enable script execution”切换为ON。
    我也试过:
    1.使用conda init tcsh将python添加到PATH
    1.在VS Code的“Markdown Preview Enhanced”扩展中切换“enable script execution”设置
    1.在VSCode中的JupyterNotebook.ipynb文件中运行此操作--Markdown块之外的所有Python代码都执行,但不执行其中的代码
    1.在围栏代码块中将/Users/john/anaconda3/bin/python替换为/Users/john/anaconda3/envs/hello_py/bin/python
    1.使用双引号而不是单引号
    替代方案是使用R,knitr,neticulate,但我不知道如何使R访问Anaconda基地或虚拟环境。
    你能帮帮忙吗先谢谢你了!任何建议将不胜感激。
wnvonmuf

wnvonmuf1#

解决方法:而不是在VS Code中执行.md Markdown文档中的fenced Python代码,只需将Markdown包含在VS Code中的.ipynb Python notebook中。
MWE。在Markdown单元格中输入,然后是Python单元格:

$$ \int_{-\infty}^0 e^x \,dx \;=\; 1$$

from math import exp
from scipy.integrate import quad
print('{0:.10f}'.format(quad(exp, -10000, 0)[0]))

Output

相关问题