Я пытаюсь запустить файл python с именем tss.py
через R в Shiny. Мне удалось запустить этот файл. Но это дает мне ошибку, когда я запускаю файл python через пользовательский интерфейс Shiny. Я не ошибаюсь, когда запускаю этот tss.py
в Pycharm. Кто-нибудь знает, как я могу решить эту проблему?
Путь к файлам:
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__
не определен, вероятно, ошибка пусковой установки. Обычно это происходит, когда пакет встроен или когда программа запускается через cx_freeze
или py2exe
, что здесь не так.
В вашем случае обходным sys.argv[0]
было бы использовать sys.argv[0]
качестве этого значения. Он работает здесь, потому что это основная программа, в которой вы работаете. Со вспомогательным пакетом это не сработало бы (но __file__
возможно, будет :))
Поэтому я предлагаю добавить это в ваш файл tss.py
import sys # must be done before
try:
__file__
except NameError:
__file__ = sys.argv[0]
поэтому, если __file__
существует, ну, пусть это будет, иначе определите его как __file__
скрипта, который запущен.
__file__
вsys.argv[0]
tss.py
в R Studio.