كيفية تشغيل البرنامج النصي python من shell التفاعلية IDLE؟

كيف يمكنني تشغيل البرنامج النصي python من داخل shell التفاعلي IDLE؟

التالي يلقي خطأ:

>>> python helloworld.py
SyntaxError: invalid syntax
66
نعم ، هذا يعني أن هناك خطأ ما في شفرة الرمز youre!
وأضاف المؤلف Serial, مصدر
يجب أن تقبل الإجابة من نيد ديلي إذا كان هذا الجواب على سؤالك بشكل صحيح. سيساعد هذا أيضًا زملاء مطورين على تحديد الإجابة الصحيحة بسرعة.
وأضاف المؤلف darth_coder, مصدر
ما الذي تبدو عليه helloworld.py ؟
وأضاف المؤلف TerryA, مصدر
لا ، ليس بالضرورة. من المحتمل أن يكون البروتوكول الاختياري عبارة عن كتابة python helloworld.py في إطار shell IDLE ولا يعمل ذلك.
وأضاف المؤلف Ned Deily, مصدر
ولن تعمل في المترجم القياسي. لقد ظهرت هذه المشكلة من قبل حيث يعتقد الناس عن طريق الخطأ أن مطالبة المفسر عبارة عن موجه سطر أوامر.
وأضاف المؤلف Terry Jan Reedy, مصدر
أسهل طريقة: python -i helloworld.py تعمل أيضًا مع python3
وأضاف المؤلف Leonard, مصدر

11 إجابة

Built-in function: execfile

execfile('helloworld.py')

عادة لا يمكن استدعاء مع الحجج. لكن إليك الحل:

import sys
sys.argv = ['helloworld.py', 'arg']  # argv[0] should still be the script name
execfile('helloworld.py')

Deprecated since 2.6: popen

import os
os.popen('python helloworld.py') # Just run the program
os.popen('python helloworld.py').read() # Also gets you the stdout

مع الحجج:

os.popen('python helloworld.py arg').read()

Advance usage: subprocess

import subprocess
subprocess.call(['python', 'helloworld.py']) # Just run the program
subprocess.check_output(['python', 'helloworld.py']) # Also gets you the stdout

مع الحجج:

subprocess.call(['python', 'helloworld.py', 'arg'])

قراءة المستندات لمزيد من التفاصيل :-)


تم اختباره باستخدام هذا helloworld.py الأساسي:

import sys
if len(sys.argv) > 1:
    print(sys.argv[1])
93
وأضاف
يمكنك الرجاء إضافة مثال مع وسيطات سطر الأوامر كذلك.
وأضاف المؤلف ViFI, مصدر

يمكنك استخدام هذا في python3:

exec(open(filename).read())
22
وأضاف
هذا واحد عملت بشكل جميل.
وأضاف المؤلف Leonard, مصدر

The IDLE shell window is not the same as a terminal shell (e.g. running sh or bash). Rather, it is just like being in the Python interactive interpreter (python -i). The easiest way to run a script in IDLE is to use the Open command from the File menu (this may vary a bit depending on which platform you are running) to load your script file into an IDLE editor window and then use the Run -> Run Module command (shortcut F5).

20
وأضاف
للأسف ، لا ، ليس من السهل تشغيل ملف Python في IDLE أثناء تمرير وسيطات سطر الأوامر. هناك مشكلة مفتوحة قديمة لـ IDLE للقيام بذلك ( bugs.python.org/issue5680 ) . الحل البديل واحد لاختبار هو يدوياً تهيئة sys.argv في بداية البرنامج ، على سبيل المثال ، تحت المعتاد إذا __name__ == "__main __" boilerplate.
وأضاف المؤلف Ned Deily, مصدر
توضح هذه الإجابة سبب عدم تشغيل البرنامج النصي python باستخدام shell IDLE. شكراNedDeily
وأضاف المؤلف arsho, مصدر
لكن لا يمكنك المرور في الحجج. :(
وأضاف المؤلف Erica Kane, مصدر

جرب هذا

import os
import subprocess

DIR = os.path.join('C:\\', 'Users', 'Sergey', 'Desktop', 'helloword.py')

subprocess.call(['python', DIR])
5
وأضاف

execFile('helloworld.py') does the job for me. A thing to note is to enter the complete directory name of the .py file if it isnt in the Python folder itself (atleast this is the case on Windows)

For example, execFile('C:/helloworld.py')

4
وأضاف

فمثلا:

import subprocess

subprocess.call("C:\helloworld.py")

subprocess.call(["python", "-h"])
2
وأضاف
subprocess.call (r'c: \ path \ to \ something.py ') لا يعمل بالنسبة لي. OSError: [WinError 193]٪ 1 ليس تطبيق Win32 صالح
وأضاف المؤلف Terry Jan Reedy, مصدر
جرب هذه العملية الفرعية للاستيراد os import DIR = os.path.join ('C: \\'، 'Users'، 'Sergey'، 'Desktop'، 'a.py') subprocess.call (['python'، DIR] )
وأضاف المؤلف Sergey Nosov, مصدر

لتشغيل البرنامج النصي python في shell python مثل Idle أو في shell Django يمكنك القيام بما يلي باستخدام الدالة exec (). تنفيذ Exec() وسيطة كائن رمز. ببساطة يتم تجميع كائن كود في Python برمز Python. لذلك يجب عليك أولاً ترجمة ملف البرنامج النصي الخاص بك ومن ثم تنفيذه باستخدام exec (). من صدفة الخاص بك:

>>>file_to_compile = open('/path/to/your/file.py').read()
>>>code_object = compile(file_to_compile, '', 'exec')
>>>exec(code_object)

أنا أستخدم Python 3.4. راجع ترجمة و exec للحصول على معلومات تفصيلية.

1
وأضاف

أسهل طريقة

python -i helloworld.py  #Python 2

python3 -i helloworld.py #Python 3
0
وأضاف

اختبرت هذا وهو يعمل على ما يلي:

exec(open('filename').read())  # Don't forget to put the filename between ' '
0
وأضاف
شكرا لهذا الاقتباس ، وهذا عمل بالنسبة لي. Upvoted.
وأضاف المؤلف CppLearner, مصدر

في Python 3 ، لا يوجد execFile . يمكن للمرء استخدام exec وظيفة مدمجة ، على سبيل المثال:

import helloworld
exec('helloworld')
0
وأضاف

في IDLE ، الأعمال التالية: -

<div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false"> <div class="snippet-code">

import helloworld
</div> </div>

لا أعرف الكثير عن سبب نجاحه ، لكنه يفعل ذلك ..

0
وأضاف
ما تقوم به هو تحميل وحدة لا تعمل من shell. فرق واحد بين اثنين هو: 1) تحميل الوحدة النمطية اسم الوحدة النمطية الخاص بك <�اسم> __ = اسم الملف 2) تشغيل من اسم وحدة قذيفة _name __ = " _main "
وأضاف المؤلف tanweer alam, مصدر