当前位置: 首页 > 面试题库 >

如何从Jupyter笔记本上的* .IPYNB文件执行* .PY文件?

厍建义
2023-03-14
问题内容

我正在使用Python笔记本工作,我希望将 大型输入html" target="_blank">代码[input] 打包到[* .PY]文件中,然后从Notebook调用此文件

我知道从笔记本 *中运行[ .PY]文件_ 的操作, 该命令在Linux或Windows之间有所不同。 _ *但是当我执行此操作并从笔记本计算机执行[.PY]文件时,它无法识别笔记本计算机中加载的任何现有库或变量(就像[ .PY]文件从零开始…)。

有没有什么办法解决这一问题?

该问题的一个可能的简化示例如下:

In[1]:
import numpy as np
import matplotlib.pyplot as plt

In[2]:
def f(x):
    return np.exp(-x ** 2)

In[3]:
x = np.linspace(-1, 3, 100)

In[4]:
%run script.py

其中“ script.py ”具有以下内容:

plt.plot(x, f(x))
plt.xlabel("Eje $x$",fontsize=16)
plt.ylabel("$f(x)$",fontsize=16)
plt.title("Funcion $f(x)$")
  • 在实际的问题中,文件[* .PY]没有4行代码,它具有更多的代码。

问题答案:

%run魔术文档中,您可以找到:

-i 在IPython的名称空间而不是空名称空间中运行文件。如果您要试验用文本编辑器编写的代码,该代码取决于交互式定义的变量,则此功能非常有用。

因此,提供-i就可以了:

%run -i 'script.py'

做到这一点的“正确”方法

也许上面的命令正是您所需要的,但是在这个问题得到所有关注的基础上,我决定为不知道如何使用pythonic方式的用户增加几分钱。
上面的解决方案有点笨拙,并且使另一个文件中的代码令人困惑(此x变量从何而来?f函数是什么?)。

我想向您展示如何做到这一点,而不必一遍又一遍地执行另一个文件。
只需将其转换为具有自己功能和类的模块,然后从Jupyter笔记本电脑或控制台导入即可。这还具有使其易于重用的优势,并且jupyters
contextassantant可以帮助您自动完成,或者如果您编写了docstring,则可以显示docstring。
如果您要不断编辑另一个文件,那么将为autoreload您提供帮助。

您的示例如下所示:
script.py

import matplotlib.pyplot as plt

def myplot(f, x):
    """
    :param f: function to plot
    :type f: callable
    :param x: values for x
    :type x: list or ndarray

    Plots the function f(x).
    """
    # yes, you can pass functions around as if
    # they were ordinary variables (they are)
    plt.plot(x, f(x))
    plt.xlabel("Eje $x$",fontsize=16)
    plt.ylabel("$f(x)$",fontsize=16)
    plt.title("Funcion $f(x)$")

Jupyter控制台

In [1]: import numpy as np

In [2]: %load_ext autoreload

In [3]: %autoreload 1

In [4]: %aimport script

In [5]: def f(x):
      :     return np.exp(-x ** 2)
      :
      :

In [6]: x = np.linspace(-1, 3, 100)

In [7]: script.myplot(f, x)

In [8]: ?script.myplot
Signature: script.myplot(f, x)
Docstring:
:param f: function to plot
:type f: callable
:param x: x values
:type x: list or ndarray
File:      [...]\script.py
Type:      function


 类似资料:
  • 在我的旧电脑上,我能够从Jupyter笔记本中运行. py文件,编辑它们,并运行它们。. py文件实际上是一个笔记本文件。我更新到最新版本的笔记本,我不再能做到这一点。如何在笔记本上使用. py文件? 我知道有很多迂回的方法可以做到这一点。我在寻找一种方法,当你在笔记本上时,不要打开一个笔记本。ipynb文件,请选择一个。py文件,该文件已打开,其行为类似于。ipnyb。当您保存它时,它会写入。皮

  • 我已经从Kaggle(视频游戏与评级)下载了一个数据库,但我不能用我的木星笔记本打开它。 我从这两行代码开始,但它给了我一个错误。。。 ()1中的UnicodeDecodeError回溯(最后一次调用)作为pd导入---- ~\Anaconda3\lib\site-包\熊猫\io\parsers.pyparser_f(filepath_or_buffer,sep,分隔符,标头,名称,index_c

  • 我对Jupyter笔记本相当陌生。我已经玩了一段时间了。但这是我第一次尝试将另一个笔记本导入我的主课堂。 作为参考,我使用的是 Anaconda 4.3.1 和 Python v2.7。 我试图将我在python项目中所做的复制到jupyter笔记本上。它需要导入其他。ipynb文件(翻译自原文。py文件)中,以便根据需要使用相关方法。 为此,我按照Jupyter Nbviewer步骤链接上给出的

  • 使用GitHub,我们可以在线存储代码,而使用Jupyter笔记本,我们只能执行Python代码的一部分。我想一起使用它们。我可以用电脑上储存的Jupyter笔记本编辑代码。但是,我无法找到运行存储在GitHub上的代码的方法。那么,你知道怎么做吗。 以下是一些例子:https://github.com/biolab/ipynb/blob/master/2015-bi/lcs.ipynb http

  • 我最近开始使用IPython笔记本作为我工作流程的一部分。然而,我还没有成功地找到一种方法将. py文件导入到打开的IPython笔记本的单个单元格中,以便它们可以编辑、运行并保存。这能做到吗? 我在留档中找到了这个,它告诉我如何将. py文件导入为新笔记本,但这不符合我想要实现的目标。 任何建议将不胜感激。

  • 所以,我试图使用Python/Jupyter笔记本做一些数据分析。数据集位于远程smb共享驱动器上。如何在不下载到本地计算机的情况下读取数据? 我尝试通过运行以下命令更改工作目录: 我得到一个“没有这样的文件或目录”错误。 我将感谢任何人能提供的任何帮助!