Может ли структура каталогов изменить функциональность кода?

#python #fasttext

#python #fasttext

Вопрос:

Может ли способ настройки структуры каталогов проекта изменить способ функционирования кода?

В частности, у меня есть проект, в котором я загружаю и использую быструю текстовую модель. файл, который я использую, находится в src папке, в то время как модель находится в models папке. Эти папки находятся на одном уровне иерархии.

При запуске этой строки кода, которая выходит из папки src и попадает в папку models

 #file.py
model = fasttext.load_model('../models/lid.176.ftz')
  

Код работает отлично. Однако недавно я переехал main.py в подкаталог, так что теперь он находится выше, и новая строка кода

 #file.py
model = fasttext.load_model('../../models/lid.176.ftz')
  

Теперь код не будет работать, и, в частности, в нем говорится

 ValueError: ../../models/lid.176.ftz cannot be opened for loading!
  

Почему это так? Нарушаю ли я какие-либо рекомендации, о которых я не знаю?

Любая помощь приветствуется.

Спасибо!

Комментарии:

1. Я бы посоветовал вам преобразовать ваши пути в абсолютные пути с os.paths.abspath помощью . Затем распечатайте каждый путь, и вы будете точно знать, что вы указываете коду для загрузки. Я предполагаю, что ваш рабочий каталог отличается в двух случаях. Это скажет вам, что если это правда.

2.Есть ли какая-либо другая информация с ValueError (например, полный стек, показывающий задействованные строки кода)? Вы уверены, что находитесь в ожидаемом рабочем каталоге? (Вы можете распечатать его перед попыткой загрузки.) Если во 2-м случае вы «переместили файл.py в подкаталог», почему теперь есть дополнительный .. сегмент пути к родительскому каталогу, переходящий в другой супердиректорий, а не новое имя подкаталога в пути?

3. вы правы. Я переместил main, и теперь это отражено в вопросе. Я пока не уверен, но я думаю, что это был случай отсутствия в рабочем каталоге, который я ожидал