2011-05-30 12 views
5

Mi empresa utiliza algún tipo de herramienta de archivo de control de versiones (Microsoft Windows) y me gustaría realizar importaciones directas desde allí. Pero no puedo encontrar una manera de hacerlo.Cómo importar un módulo de Python accesible a través de una url

Esto es lo que he intentado:

>>> import sys 
>>> sys.path.append(r"http://some_path_copied_and_pasted/05.Autres%20Outils/Regen_Engine") 
>>> sys.path 
['C:\\Python26\\Lib\\idlelib', 'C:\\Python26\\python26.zip', 'C:\\Python26\\DLLs', 'C:\\Python26\\lib', 'C:\\Python26\\lib\\plat-win', 'C:\\Python26\\lib\\lib-tk', 'C:\\Python26', 'C:\\Python26\\lib\\site-packages', 'http://some_path_copied_and_pasted/05.Autres%20Outils/Regen_Engine'] 
>>> import regen_engine as r 
Traceback (most recent call last): 
    File "<pyshell#6>", line 1, in <module> 
    import regen_engine as r 
ImportError: No module named regen_engine 

me trataron mediante la sustitución del "20%" de la dirección URL con "" (espacios), pero el resultado es el mismo. También probé usando el módulo imp, pero no mejor.

Así que aquí están mis preguntas:

  1. es posible hacer una importación de una URL?
  2. En caso afirmativo, ¿cómo puedo hacerlo realidad?

Quizás una solución podría ser acceder a este archivo con alguna otra ruta oculta de Sharepoint, por lo que una etiqueta sería apropiada.

+0

Nunca probar, pero echar un vistazo en el xhtmlhook: http://www.boddie.org.uk/python/xhtmlhook/ – mouad

+0

Por lo que entendí, esto parece más relacionado con xhtml para fines de documentación. Quiero decir, Sharepoint es visible como un portal web, pero aún puedo encontrar mi script de python por acceso directo en un navegador web con URL completa. –

Respuesta

2
import urllib 
def urlimport(x): 
    exec urllib.urlopen(x) in globals() 

Esta es la forma incorrecta de hacer esto, nunca debe usar esto en el código de producción, es solo una prueba de concepto.

+0

Siguiendo su ejemplo, comencé a probar esto simplemente leyendo el guión. Pero ahora tengo un problema de conexión: 'URLError: '. Así que supongo que primero tendré que comprobar esto, y apuesto a que está relacionado con este portal de Sharepoint no tan genial, tal vez algún tipo de política de derechos de acceso. No es tan simple como parecía a primera vista ... –

+0

Ese es tu servidor web no es mi código. –

+0

Eso es obvio, de ahí mi comentario "Tendré que comprobar". Desde su primera respuesta, entendí que Python puede importar desde la URL (aunque sea un poco complicado); ahora mi trabajo será entender cómo manejar este servidor de SharePoint. Así que gracias por la pieza de evidencia. –

1

Probar:

def dynamic_import_by_uri(file) 
    file = os.path.abspath(file) 
    exec open(file, 'rb') in globals() 

Funciona, pero no es seguro para versión de producción ...

Cuestiones relacionadas