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

  • CMTelly

    CMTelly

    2 Mayıs 2007
  • HowToBasic

    HowToBasic

    8 Aralık 2011
  • NPR

    NPR

    22 NİSAN 2006