В Python (и большинстве языков), где код находится в пакете, отличается от рабочего каталога при запуске программы. Все относительные пути относятся к текущему рабочему каталогу, а не к файлу кода, в котором он написан. Таким образом, вы бы использовали относительный путь nltk_data/
даже из чертежа, или вы использовали бы абсолютный путь и не оставляли бы двусмысленности.
Атрибут root_path
в приложении (или плане) относится к каталогу пакета для приложения (или плана). Присоедините свой относительный путь к этому, чтобы получить абсолютный путь.
resource_path = os.path.join(app.root_path, 'enltk_data')
У вас, вероятно, нет причин добавлять эту папку каждый раз, когда вы вызываете представление. Я не знаком с nltk специально, но, вероятно, есть способ структурировать это, поэтому вы настраиваете путь к данным один раз при создании своего приложения.
project / app / blueprint
/ data
^ join with root_path to get here
^ app.root_path always points here, no matter where cwd is
^ current working directory
Хорошо
Так что для этого оказывается, что я был идиотом. И никто другой не увидит проблему, потому что я не опубликовал полный сценарий.
Ранее в функции Create у меня была строка для отправки параметров на консоль:
$PsBoundParameters | Out-String
Поэтому, когда я думал, что скрипт возвращает только значение $ ToolsPage, он фактически также возвращал другой объект с ним. .
Следовательно, причина, по которой сценарий обновления заключается в том, что я явно передаю переменную $ ToolsPage.
Я выяснил это, установив параметры, которые должны содержать значение объекта в $ Global: variable_name, а затем сравнил значения из моей консоли.