SORU
23 Kasım 2010, Salı


çalışan bash, python komutları

Benim yerel makinede bu satırı içeren bir python betiği çalıştırın

bashCommand = "cwm --rdf test.rdf --ntriples > test.nt"
os.system(bashCommand)

Bu gayet iyi çalışıyor.

O zaman bir sunucu üzerinde aynı kodu çalıştırın ve aşağıdaki hata iletisini alıyorum

'import site' failed; use -v for traceback
Traceback (most recent call last):
File "/usr/bin/cwm", line 48, in <module>
from swap import  diag
ImportError: No module named swap

Ben ne yaptım o zaman ben eklenen "" hangi işletim sistemi ile çalışır önce terminalde komutu yazdırır bana.baskı bashCommand yani() sistem.

Tabii ki yine hata alıyorum (os.neden sistemi(bashCommand)) ama bu hata daha önce terminalde komutu yazdırır. O zaman ben sadece kopyalanan ve çıkış terminal ve hit kopyalayın yapıştırın enter yaptım ve çalışıyor.

Herkes bir ipucu ne oluyor :(?

CEVAP
23 Kasım 2010, Salı


os.system kullanmayın. subprocess kullanın.

Senin durumunda olduğu gibi

bashCommand = "cwm --rdf test.rdf --ntriples > test.nt"
import subprocess
process = subprocess.Popen(bashCommand.split(), stdout=subprocess.PIPE)
output = process.communicate()[0]

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Boiler Room

    Boiler Room

    10 Mayıs 2012
  • KoreanFrogMania님의 채널

    KoreanFrogMa

    18 Aralık 2011
  • Study with Substance P

    Study with S

    31 Mayıs 2008