경로를 표시하지 않고 ipython 내부에서 모듈이 아닌 Python 스크립트를 실행할 수 있습니까? PYTHONPATH를 설정하려고했지만 모듈에서만 작동하는 것 같습니다. 나는 실행하고 싶다
%run my_script.py
파일이 포함 된 디렉토리에 있지 않습니다.
경로를 표시하지 않고 ipython 내부에서 모듈이 아닌 Python 스크립트를 실행할 수 있습니까? PYTHONPATH를 설정하려고했지만 모듈에서만 작동하는 것 같습니다. 나는 실행하고 싶다
%run my_script.py
파일이 포함 된 디렉토리에 있지 않습니다.
답변:
"my_script.py"디렉토리에서 다음을 수행 할 수 있습니다.
%run ./my_script.py
SyntaxError: invalid syntax
여기, Python 콘솔 . Debian 9의 Python 3.5.3. 그러나 IPython에서 작동합니다.
%run
은 파이썬 언어 자체의 일부가 아니라 ipython 매직 명령 이기 때문 입니다.
%run
마법 매개 변수가 file_finder
이 (참조 실행 파일의 전체 경로를 얻기 위해 사용하는 여기를 ) 아시다시피, 현재 디렉토리에서 필요한 경우 ".py"를 추가합니다.
사용하는 파일 찾기를 지정하는 방법이있을 것 같지 않습니다 에서%run
마술,하지만 자신의 마법 명령을 정의에서 당신을 막을 수있는 건 없습니다 그에 호출 %run
적절한 파일 찾기와.
A와 매우 불쾌한 해킹, 기본 무시할 수있는 file_finder
자신과를 :
IPython.core.magics.execution.ExecutionMagics.run.im_func.func_defaults[2] = my_file_finder
솔직히 말해서, IPython API는 자신의 마법을 정의하는 것처럼 계속 작동 할 가능성이있는 속도로 변화하고 있습니다.
파이썬에서는 모듈과 스크립트 사이에 차이가 없습니다. 스크립트와 모듈을 모두 실행할 수 있습니다. python은 문제의 파일을 찾을 수 있어야하므로 파일은 pythonpath AFAIK에 있어야합니다. python이 디렉토리에서 실행되면 디렉토리가 자동으로 pythonpath에 추가됩니다.
다른 Python 스크립트에서 Python 스크립트를 호출하는 가장 좋은 방법은 무엇입니까?를 참조하십시오 . 모듈 대 스크립트에 대한 자세한 정보는
원하는 것을 수행하는 내장 함수 execfile (filename)도 있습니다.
__name__
== ' __main__
':"줄을 사용하여 스크립트로 두 배가 될 수 있습니다
Python 3.6.5 용
import os
os.getcwd()
runfile('testing.py')
runfile()
의 명령 ipython
? 나를 위해 기본적으로 작동하지 않습니다.
import <module>
본질적으로exec(<moduleSource>)
JavaScript 또는 Perl 과 동일 합니다.