Warning: Error in py_run_file_impl: NameError: name '__file__' is not defined
Warning: Error in py_run_file_impl: NameError: name '__file__' is not defined
我正在尝试通过 Shiny 中的 R 运行 一个名为 tss.py
的 python 文件。我已成功 运行 生成此文件。但是当我通过 Shiny 的用户界面 运行 一个 python 文件时,它给了我错误。当我在 Pycharm 中 运行 这个 tss.py
时,我没有收到任何错误。有谁知道我该如何解决这个问题?
文件路径:
D:\PycharmProjects\Tasks\applications\tss.py
D:\PycharmProjects\Tasks\server.R
Server.R:
observeEvent(input$action,{
py_run_file("applications/tss.py")
})
tss.py:
import os
import sys
sys.path.append(os.path.split(os.path.dirname(os.path.realpath(__file__)))[0])
print("Mayday! Mayday!")
错误:
Warning: Error in py_run_file_impl: NameError: name '__file__' is not defined
76: <Anonymous>
请不要将此问题标记为重复。我在 R 中得到这个,而不是在 Python 中。有谁知道我该如何解决这个问题?
不知道为什么没有定义__file__
,可能是启动器的bug。它通常发生在包是内置的或程序已 运行 通过 cx_freeze
或 py2exe
时,这里不是这种情况。
对于您的情况,解决方法是使用 sys.argv[0]
作为该值。它在这里工作是因为它是您 运行ning 的主程序。使用辅助包它不会工作(但 __file__
可能会 :))
所以我建议将此添加到您的 tss.py
文件
import sys # must be done before
try:
__file__
except NameError:
__file__ = sys.argv[0]
所以如果 __file__
存在,好吧,顺其自然,否则将其定义为 运行ning.
脚本的文件路径
我正在尝试通过 Shiny 中的 R 运行 一个名为 tss.py
的 python 文件。我已成功 运行 生成此文件。但是当我通过 Shiny 的用户界面 运行 一个 python 文件时,它给了我错误。当我在 Pycharm 中 运行 这个 tss.py
时,我没有收到任何错误。有谁知道我该如何解决这个问题?
文件路径:
D:\PycharmProjects\Tasks\applications\tss.py
D:\PycharmProjects\Tasks\server.R
Server.R:
observeEvent(input$action,{
py_run_file("applications/tss.py")
})
tss.py:
import os
import sys
sys.path.append(os.path.split(os.path.dirname(os.path.realpath(__file__)))[0])
print("Mayday! Mayday!")
错误:
Warning: Error in py_run_file_impl: NameError: name '__file__' is not defined
76: <Anonymous>
请不要将此问题标记为重复。我在 R 中得到这个,而不是在 Python 中。有谁知道我该如何解决这个问题?
不知道为什么没有定义__file__
,可能是启动器的bug。它通常发生在包是内置的或程序已 运行 通过 cx_freeze
或 py2exe
时,这里不是这种情况。
对于您的情况,解决方法是使用 sys.argv[0]
作为该值。它在这里工作是因为它是您 运行ning 的主程序。使用辅助包它不会工作(但 __file__
可能会 :))
所以我建议将此添加到您的 tss.py
文件
import sys # must be done before
try:
__file__
except NameError:
__file__ = sys.argv[0]
所以如果 __file__
存在,好吧,顺其自然,否则将其定义为 运行ning.