Saya mencoba menjalankan skrip python 2.7 dari skrip Iron python menggunakan subprocess.call
. proses yang dipanggil menggunakan impor yang tidak didukung di IronPython seperti scikit-learn
dan requests
.
Saat ini saya mencoba menjalankan skrip python 2.7 menggunakan perintah ini:
sub_ret_val = subprocess.call("C:/Documents and Settings/avishay/workspace/BursaProject_V1_31/brainManager_toFile.py", shell = True, stderr = subprocess.STDOUT)
tapi saya mendapatkan:
LookupError: pengkodean tidak diketahui: idna
sekarang, skrip ini berfungsi dengan baik jika saya menjalankannya dari shell windows, atau dari lingkungan Eclipse pydev. apa perbedaan antara menjalankannya dari shell, dengan menjalankannya dari subprocess.call
yang menyebabkannya gagal??
Terima kasih
---EDIT---
Sepertinya saya juga tidak bisa mengimpor codings.idna :
ImportError: Tidak ada modul bernama idna
yang sangat sangat aneh... pencetakan sys.path
menunjukkan bahwa c:\\Python27\\Lib
ada, dan file idna.py ada di direktori pengkodean... bagaimana mungkin impor tidak berfungsi???
---SATU EDIT LAGI---
Saya telah menemukan satu cara untuk mengatasi masalah ini - memulai skrip IronPython dari shell python - dan semuanya berfungsi dengan baik. Saya masih tidak tahu mengapa menggunakan juru bahasa python 2.7 dari IronPython mengganggu modul internal python 2.7... PYTHONPATH menyertakan jalur ke modul tersebut, jadi saya akan sangat menghargai wawasan apa pun tentang apa yang terjadi di balik terpal.
print u'abc'.encode('idna')
ke dalam filechild.py
dan panggil dariparent.py
:import subprocess; subprocess.call([r'c:\Python27\python.exe', 'child.py'])
. Pertama-tama jalankanparent.py
menggunakan CPython (untuk memastikannya berfungsi seperti yang diharapkan) kemudian jalankanparent.py
menggunakan IronPython dan lihat apakah itu mereproduksi masalah. - person jfs   schedule 25.04.2013parent.py
dengan IronPython... - person WeaselFox   schedule 26.04.2013