Python subprocess.Popen baþlatýrken "Sistem belirtilen dosyayı bulamıyor"

oy
5

Ben bazı dosyaları birleştirmek için svnmerge.py kullanmaya çalışıyorum. Kaputun altında, piton kullanır ve bunu kullandığınızda bir hata alıyorum - Sistem belirtilen dosyayı bulamıyor. İş yerinde Meslektaşlar svnmerge.py aynı sürümünü çalıştıran ve pitonun (2.5.2, özellikle r252: 60911) olan bir sorun olmadan.

Bulduğum bu bağlantıyı sorunumu açıklamıyor. Orada ana hatlarıyla ne çalışılıyor, ben Python svn (benim yolda var) bulabildiğim doğruladı:

P: \> piton 
Python 2.5.2 (r252: 60911, 21 Şubat 2008, 13:11:45) win32'de [MSC'nin v.1310 32 bit (Intel)] 
Tür yardım, telif hakkı, kredi veya daha fazla bilgi için Lisans. 
>>> import os 
>>> i k = os.popen4 ( svn version) 
>>> i.close () 
>>> k.readline () 
Svn, versiyon 1.4.2 (r22196) \ N ' 

svnmerge.py koduna baktığımızda, yine de, ben piton sürümleri 2.4 için fark ve daha yüksek farklı bir yürütme yolunu takip ediyordu. Aksine os.popen4 çağırma daha () o subprocess.Popen kullanır (). Bu hatayı çoğalır çalışılıyor:

C: \> piton
Python 2.5.2 (r252: 60911, 21 Şubat 2008, 13:11:45) [MSC'nin v.1310 32 bit (Intel)] Win32 Tipi üzerindeki yardım, telif hakkı, kredi ya da daha fazla lisans bilgi.
>>> import alt işlemi
>>> p = subprocess.Popen ( svn version, stdout'u = subprocess.PIPE, 
>>> close_fds = False stderr = subprocess.PIPE)
Traceback (en son çağrı son):
  Dosya , 1 numaralı hat içinde 
  Dosya C: \ Python25 \ lib \ subprocess.py, hat 594, __init__
    errread, errwrite)
  Dosya C: \ Python25 \ lib \ subprocess.py, hat 816, _execute_child içinde
    STARTUPINFO)
WindowsError: [Hata 2] belirtilen dosyayı bulamıyor sistem
>>>

Şimdilik, ben 2.4-ve-yüksek özgül kodunu yorumladı, ama ben uygun bir çözüm bulmak istiyoruz.

çok açık değilse, ben tam bir piton acemi değilim, ama google yardım etmedi. Herhangi bir işaretçiler?

Oluştur 30/08/2008 saat 21:24
kaynak kullanıcı
Diğer dillerde...                            


1 cevaplar

oy
13

Bunu görmek, bir sinek belgelerinesubprocess.Popen . Orada ya bir olması gerekir "shell=True"seçeneği, ya da ilk argüman dizisi olması gerekiyor ['svn', '--version']. Şimdi olduğu gibi, Popenkelimenin tam anlamıyla, adlı bir yürütülebilir aradığı 'svn version' bulmak etmeyen.

olsa meslektaşlarınız için işe neden Python aynı işletim sistemi ve sürümü kullanıp ben, bilmiyorum ... FWIW bana bir mac aynı hata mesajı veriyor ve ben düzeltmeleri verdi iki yoldan birini .

Cevap 30/08/2008 saat 21:34
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more