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

  • Cole Rolland

    Cole Rolland

    23 Kasım 2008
  • gsipek

    gsipek

    20 Temmuz 2007
  • Wii Minute Radio

    Wii Minute R

    31 Mayıs 2008