Este fragmento es de una respuesta anterior aquí en SO. Tiene aproximadamente un año (y la respuesta no fue aceptada). Soy nuevo en Python y estoy encontrando la ruta del sistema un verdadero dolor. Tengo algunas funciones escritas en scripts en diferentes directorios, y me gustaría poder importarlas a nuevos proyectos sin tener que saltar por los aros.¿Es esta la forma correcta de importar scripts de Python que residen en carpetas arbitrarias?
Este es el fragmento:
def import_path(fullpath):
""" Import a file with full path specification. Allows one to
import from anywhere, something __import__ does not do.
"""
path, filename = os.path.split(fullpath)
filename, ext = os.path.splitext(filename)
sys.path.append(path)
module = __import__(filename)
reload(module) # Might be out of date
del sys.path[-1]
return module
Su desde aquí: How to do relative imports in Python?
me gustaría alguna información en cuanto a si lo puedo usar o no - y si hay efectos secundarios indeseables que puede no ser obvio para un novato.
que va a utilizarla algo como esto:
import_path(/home/pydev/path1/script1.py)
script1.func1()
etc
Es 'seguro' para utilizar la función de la manera que pretendo?
En 3.3, imp ha quedado obsoleto a favor de importlib. Sin embargo, en 3.2, no parece haber ningún uso equivalente de importlib, por lo que si necesita ejecutar en ambos entornos, ahórrese un dolor de cabeza y quédese con imp. – Yourpalal