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

  • 10 Daughters, 2 Sons

    10 Daughters

    10 Mart 2009
  • Photoshop Pro Help

    Photoshop Pr

    1 Ocak 2007
  • Visual Life

    Visual Life

    3 Temmuz 2006