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

  • Goran Dimov

    Goran Dimov

    1 HAZİRAN 2014
  • Madeon

    Madeon

    31 Ocak 2010
  • martin shervington

    martin sherv

    7 EKİM 2011