เป็นไปได้หรือไม่ที่จะรันสคริปต์ python (ไม่ใช่โมดูล) จากภายใน ipython โดยไม่ระบุเส้นทาง ฉันพยายามตั้งค่า PYTHONPATH แต่ดูเหมือนว่าจะใช้ได้กับโมดูลเท่านั้น ฉันต้องการดำเนินการ
%run my_script.pyโดยไม่ต้องอยู่ในไดเร็กทอรีที่มีไฟล์
เป็นไปได้หรือไม่ที่จะรันสคริปต์ python (ไม่ใช่โมดูล) จากภายใน ipython โดยไม่ระบุเส้นทาง ฉันพยายามตั้งค่า PYTHONPATH แต่ดูเหมือนว่าจะใช้ได้กับโมดูลเท่านั้น ฉันต้องการดำเนินการ
%run my_script.pyโดยไม่ต้องอยู่ในไดเร็กทอรีที่มีไฟล์
คำตอบ:
จากภายในไดเรกทอรีของ "my_script.py" คุณสามารถทำได้:
%run ./my_script.pySyntaxError: invalid syntaxที่นี่ในหลามคอนโซล Python 3.5.3 บน Debian 9 อย่างไรก็ตามทำงานบน IPython
                    %runเป็นคำสั่งเวทย์มนตร์ ipython ไม่ใช่ส่วนหนึ่งของภาษา Python เอง
                    import os
filepath='C:\\Users\\User\\FolderWithPythonScript' 
os.chdir(filepath)
%run pyFileInThatFilePath.pyที่ควรทำ
%runมายากลมีพารามิเตอร์file_finderที่จะใช้เพื่อให้ได้เส้นทางแบบเต็มไปยังไฟล์ที่จะรัน (ดูที่นี่ ); ดังที่คุณทราบมันจะดูในไดเรกทอรีปัจจุบันต่อท้าย ".py" หากจำเป็น
มีไม่ได้ดูเหมือนจะเป็นวิธีที่จะระบุว่าโปรแกรมค้นหาไฟล์ที่จะใช้จาก%runมายากล แต่ไม่มีอะไรที่จะหยุดคุณจากการกำหนดคำสั่งมายากลของคุณเองว่าสายเป็น%runด้วยการค้นหาไฟล์ที่เหมาะสม
ในฐานะแฮ็คที่น่ารังเกียจมากคุณสามารถแทนที่ค่าเริ่มต้นfile_finderด้วยตัวคุณเอง:
IPython.core.magics.execution.ExecutionMagics.run.im_func.func_defaults[2] = my_file_finderตามจริงแล้วในอัตราที่ IPython API กำลังเปลี่ยนแปลงซึ่งมีแนวโน้มที่จะทำงานต่อไปได้เหมือนกับการกำหนดเวทมนตร์ของคุณเอง
ใน python ไม่มีความแตกต่างระหว่างโมดูลและสคริปต์ คุณสามารถดำเนินการได้ทั้งสคริปต์และโมดูล ไฟล์ต้องอยู่ใน pythonpath AFAIK เนื่องจาก python ต้องสามารถค้นหาไฟล์ที่เป็นปัญหาได้ ถ้า python ถูกเรียกใช้งานจากไดเร็กทอรีไดเร็กทอรีจะถูกเพิ่มลงใน pythonpath โดยอัตโนมัติ
อ้างถึงวิธีที่ดีที่สุดในการเรียกสคริปต์ Python จากสคริปต์ Python อื่นคืออะไร สำหรับข้อมูลเพิ่มเติมเกี่ยวกับโมดูลและสคริปต์
นอกจากนี้ยังมี execfile ฟังก์ชันในตัว (ชื่อไฟล์) ที่จะทำสิ่งที่คุณต้องการ
__name__== ' __main__':" ในตอนท้าย
                    สำหรับ Python 3.6.5
import os
os.getcwd()
runfile('testing.py')runfile()คำสั่งของipython? ไม่ได้ผลสำหรับฉัน
                    
import <module>โดยพื้นฐานแล้วจะเหมือนกับexec(<moduleSource>)ใน JavaScript หรือ Perl