매우 구체적인 문제가 있습니다. 나는 파이썬 함수를 파이썬 문자열에서 가져온 파이썬 스크립트 안에서 호출하기를 원한다.문자열에서 파이썬 코드 (모듈 포함)를 실행합니다.
소리가 복잡하지만 그렇지 않습니다. 이 터미널 (ipython 및 CPython과)에서 작동
x = """import os
def test():
print(os.curdir)
"""
exec(x)
test()
하지만 실제 파이썬 스크립트 내에서 작동하지 않습니다 내가하고 싶은이있다. 그것은 os가 수입되지 않기 때문에 작동하지 않을 것입니다., 그래서 os가 폐기 된 스코프로 반입되기 때문에 추측합니다. 그리고 스크립트에서 호출 할 때 임포트 된 OS가 없습니다.
나는이 성가신 문제를 해결할 수있는 다른 방법이 있지만, 모두 하드 디스크에 파일을 쓰는 것을 포함합니다 (이는 내 스크립트에서 용납되지 않습니다).
UPDATE
죄송합니다, 당신은 함수에서 간부 및 테스트 호출하면 분명히이 문제는 무슨 일이 일어나고
예 :
이x = """import os
def test():
print(os.curdir)
"""
def mytest():
exec(x)
test()
mytest()
다른 하나는에 말이없는, 분명히 작동 모두 나를 위해.
이 코드를 Python 2.7.6 및 Python 3.2.3에서 실행해도 문제가 없습니다. – syntagma
나는이 질문을 업데이트했다. 고마워. – Smarties89