Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

938
Visualizações
¿Cómo ejecutar un archivo * .PY desde un archivo * .IPYNB en el cuaderno Jupyter?

Estoy trabajando en un Python Notebook y me gustaría que el código de entrada grande [input] se empaquete en archivos [* .PY] y llame a estos archivos desde el notebook .

Conozco la acción de ejecutar un archivo [.PY] desde el portátil y el comando varía entre Linux o Windows. Pero cuando realizo esta acción y ejecuto el archivo [.PY] desde el cuaderno, no reconoce ninguna biblioteca o variable existente cargada en el cuaderno (es como si el archivo [ .PY] comenzara desde cero...).

¿Hay alguna forma de arreglar esto?

Un posible ejemplo simplificado del problema sería el siguiente:

 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

Donde " script.py " tiene el siguiente contenido:

 plt.plot(x, f(x)) plt.xlabel("Eje $x$",fontsize=16) plt.ylabel("$f(x)$",fontsize=16) plt.title("Funcion $f(x)$")
  • En el problema real, el archivo [* .PY] no tiene 4 líneas de código, tiene bastantes más.
over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

En la documentación de %run magic puedes encontrar:

-ejecuto el archivo en el espacio de nombres de IPython en lugar de uno vacío. Esto es útil si está experimentando con código escrito en un editor de texto que depende de variables definidas de forma interactiva.

Por lo tanto, proporcionar -i hace el truco:

 %run -i 'script.py'

La forma "correcta" de hacerlo

Tal vez el comando anterior es justo lo que necesita, pero con toda la atención que recibe esta pregunta, decidí agregarle algunos centavos más para aquellos que no saben cómo sería una forma más pitónica.
La solución anterior es un poco complicada y hace que el código en el otro archivo sea confuso (¿De dónde viene esta variable x ? ¿Y cuál es la función f ?).

Me gustaría mostrarle cómo hacerlo sin tener que ejecutar el otro archivo una y otra vez.
Simplemente conviértalo en un módulo con sus propias funciones y clases y luego impórtelo desde su computadora portátil o consola Jupyter. Esto también tiene la ventaja de hacerlo fácilmente reutilizable y el asistente de contexto de jupyters puede ayudarlo con el autocompletado o mostrarle la cadena de documentación si escribió una.
Si está editando constantemente el otro archivo, entonces autoreload viene en su ayuda.

Su ejemplo se vería así:
guión.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)$")

consola 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
over 4 years ago · Santiago Trujillo Relatório

0

las siguientes líneas también funcionarían

 !python script.py
over 4 years ago · Santiago Trujillo Relatório

0

Tal vez no sea muy elegante, pero hace el trabajo:

 exec(open("script.py").read())
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda