2016-04-11 17 views
-1

Uzaktaki ana bilgisayara bağlanmak için kumaş kullanıyorum, orada olduğumda, yaptığım bir betiği çağırmaya çalışıyorum (Bu, argüman olarak verdiğim dosyayı ayrıştırır). Benim Fabfile.py içinden senaryoyu çağırdığınızda Ama, verdiğim yol benim fabfile.py olarak (böylece benim uzak ana)Python fabric calling script "Uzak yol"

gelen fabfile başlatmak makineden olduğunu varsayar ben:

Import import servclasse 
env.host='host1' 
def listconf(): 
    #here I browes to the correct folder 
    s=servclasse.Server("my.file") #this is where I want it to open the host1:my.file file and instanciate a classe from what it parsed 

Bunu yaparsam, servclass.py dosyasının bulunduğu klasörden dosyayı açmaya çalışır. Tartışmada "uzak yol" vermenin bir yolu var mı? Dosyayı indirmeyi tercih etmem. Servis çağırmadan önce servclasse.py betiğini operation.put ile yüklemem gerekir mi?


Düzenleme:

def __init__(self, path): 
    self.config = ConfigParser.ConfigParser(allow_no_value=True) 
    self.config.readfp(open(path)) 
+0

I 'kumaş kullanmaya çalıştı .contrib.files.append' işlevini, boş bir dosyaya eklemek için '' run ('cat my.file') 'dır ancak çalışmayı başaramam. Bu bir çözüm olabilir mi? – pwnsauce

+0

Lütfen sorununuzla ilgili harici komut dosyanızın ('servclasse.py') kısmını gönderin. – fernandezcuesta

cevap

0

fonksiyon open() sorun oldu: Daha fazla bilgi benim servclasse, bu var. Ben bu yüzden bu konu bir gün okumak durumda birisi burada bırakın edeceğiz nasıl anladım:

def listconf(): 
#first I browes to the correct folder then 
    contents = StringIO.StringIO() 
    get("MyFile",contents) 
    contents.seek(0) 
    s=Server(contents) 

ve servclass.py

def __init__(self, objfile): 
    self.config = ConfigParser.ConfigParser(allow_no_value=True) 
    self.config.readfp(objfile) 
    #and i do my stuffs 
İlgili konular