Форум программистов, компьютерный форум, киберфорум
Хостинг
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/29: Рейтинг темы: голосов - 29, средняя оценка - 4.52
2 / 2 / 0
Регистрация: 22.12.2017
Сообщений: 34
1

Heroku не видит файлы в папке

18.11.2018, 22:17. Показов 5626. Ответов 4

Author24 — интернет-сервис помощи студентам
Добрый вечер, не подскажите в чём проблема

Я пишу бота под телеграмм, где один и методов- это вывод случайной картинки из папки вместе с проектом(Имя проекта/Images/наименование_категории/Картинка). Запуская скрипт на локальной машине, всё отрабатывается как надо, но после деплоя, когда вызываю этот метод, он падает. Покопавшись в логах, было установлено, что скрипт не может отыскать файлы и просто падает. Пытался поменять сам путь, но резултат не изменился. Можно ли как-нибудь прописать в зависимостях все папки или вообще никак? Если никак, то где можно ещё повесить хостинг, чтобы данную проблему решить

p.s Код базы и логи, если вдруг понадобится
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
import random
 
dir_anime = 'C:/Users/GeorgePC/Desktop/elizabbot/Images/Anime/'
dir_cars = 'C:/Users/GeorgePC/Desktop/elizabbot/Images/Cars/'
dir_enviroment = 'C:/Users/GeorgePC/Desktop/elizabbot/Images/Enviroment/'
dir_fractals = 'C:/Users/GeorgePC/Desktop/elizabbot/Images/Fractals/'
dir_screen = 'C:/Users/GeorgePC/Desktop/elizabbot/Images/Screen/'
dir_sport = 'C:/Users/GeorgePC/Desktop/elizabbot/Images/Sport/'
 
images_anime = ['A1.webp', 'A2.webp', 'A3.webp', 'A4.webp', 'A5.webp', 'A6.webp', 'A7.webp',
                'A8.webp', 'A9.webp', 'A10.webp', 'A11.webp', 'A12.webp', 'A13.webp', 'A14.webp',
                'A15.webp', 'A16.webp', 'A17.webp']
 
images_cars = ['C1.jpg', 'C2.jpg', 'C3.jpg', 'C4.jpg', 'C5.jpg', 'C6.jpg', 'C7.jpg',
               'C10.jpg', 'C11.jpg', 'C12.jpg', 'C13.jpg', 'C14.jpg',
               'C15.jpg', 'C16.jpg', 'C17.jpg']
 
images_enviroment = ['E1.jpg', 'E5.jpg', 'E6.jpg',
                     'E7.jpg', 'E8.jpg', 'E9.jpg', 'E10.jpg', 'E11.jpg']
 
images_fractals = ['F1.jpg', 'F2.jpg', 'F3.jpg', 'F4.jpg', 'F5.jpg',
                   'F8.jpg', 'F9.jpg', 'F10.jpg', 'F11.jpg', 'F12.jpg',
                   'F13.jpg']
 
images_screen = ['S1.jpg', 'S2.jpg', 'S3.jpg', 'S4.jpg', 'S5.jpg', 'S6.jpg', 'S7.jpg',
                 'S8.jpg', 'S9.jpg', 'S10.jpg', 'S11.jpg', 'S12.jpg', 'S13.jpg', 'S14.jpg',
                 'S15.jpg', 'S16.jpg', 'S17.jpg', 'S18.jpg', 'S19.jpg']
 
images_sport = ['SP1.jpg', 'SP2.jpg', 'SP3.jpg', 'SP4.jpg', 'SP5.jpg', 'SP6.jpg', 'SP7.jpg', 'SP8.jpg',
                'SP9.jpg', 'SP10.jpg', 'SP11.jpg', 'SP12.jpg', 'SP13.jpg', 'SP14.jpg', 'SP15.jpg', 'SP16.jpg']
 
random.shuffle(images_anime)
random.shuffle(images_cars)
random.shuffle(images_enviroment)
random.shuffle(images_fractals)
random.shuffle(images_screen)
random.shuffle(images_sport)
 
random_index_anime = (random.randrange(0, len(images_anime)))
random_index_cars = (random.randrange(0, len(images_cars)))
random_index_environment = (random.randrange(0, len(images_enviroment)))
random_index_fractals = (random.randrange(0, len(images_fractals)))
random_index_screen = (random.randrange(0, len(images_screen)))
random_index_sport = (random.randrange(0, len(images_sport)))
 
my_mark_anime = dir_anime + str(images_anime[random_index_anime])
my_mark_cars = dir_cars + str(images_cars[random_index_cars])
my_mark_enviroment = dir_enviroment + \
    str(images_enviroment[random_index_environment])
my_mark_fractals = dir_fractals + str(images_fractals[random_index_fractals])
my_mark_screen = dir_screen + str(images_screen[random_index_screen])
my_mark_sport = dir_sport + str(images_sport[random_index_sport])
Вложение 983593

Добавлено через 2 часа 28 минут
Решил проблему. Нужно было зайти в баш консоль на хероку. Перейти в нужную папку и через pwd узнать путь. Потом просто вставить этот путь в скрипт
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.11.2018, 22:17
Ответы с готовыми решениями:

Не видит вложенные папки и файлы в расшаренной папке
Расшарил папку для рабочей группы, папку видят, а вложенные файлы и папки нет, причем внутри этой...

Как указать путь к папке и создать массив с ссылками на все файлы в папке?
В моём случае нужно указание директории с видео, создание массива, и тк он будет использоваться в...

Находить в папке файлы с расширением .pes, и обрабатывать эти файлы с формированием скриншотов
Ребят столкнулся с такой задачей которую я буду выполнять очень долго сам в програмировании не...

Программа не видит файл в скрытой папке
Почему программа на Lazarus не видит файл в скрытой папке?(выдает ошибку 3 т.е путь не найден)(сам...

4
5 / 5 / 0
Регистрация: 25.09.2017
Сообщений: 494
11.09.2020, 23:45 2
Цитата Сообщение от Reywal Посмотреть сообщение
Нужно было зайти в баш консоль на хероку.
И как этой консолью пользоваться? Команды с приставкой heroku эта консоль не хочет распознавать.

Цитата Сообщение от Reywal Посмотреть сообщение
Перейти в нужную папку и через pwd узнать путь. Потом просто вставить этот путь в скрипт

Т.е. на heroku у каждого проекта есть своя файловая система, я смотрю корневой каталог проекта, вижу папку с названием приложения app_name и ввожу cd app_name . Перешёл, дальше как посмотреть что в папке приложения? Поскольку, я, когда ввожу новую команду ls, я почему-то перехожу снова в корень проекта.

Зачем всё это надо мне? У меня в проекте используются exe-файлы и они используются в контроллере django --- ну и не видит этот "замечательный" сервер эти exe-файлы. Я не знаю вообще как поступить с этим. Для них по аналогии как и с любыми файлами суб процессов нужно создавать переменные и прописывать к ним путь?

Добавлено через 6 минут
То есть я вот таким сложным способом посмотрел что в папке app_name :

Bash
1
cd app_name && ls
Добавлено через 4 минуты
Ну и чо? Всё, что надо для работы приложения есть. Когда я перехожу на некоторую страницу --- запускается контроллер, который собственно её и отображает --- и для этого необходим exe--файл. Он там есть в этом приложении. На локальном сервере всё работает. На heroku хрень. Ну она и так и названа. Так что ему надо для удовлетворения? Ошибка Errno such File --- указывает на имя exe.

На Heroku вообще поддерживается Windows?
0
5 / 5 / 0
Регистрация: 25.09.2017
Сообщений: 494
13.09.2020, 21:29 3
Попробовал др. сервер указать, настроил его установку в requirements.txt. Щас тем более heroku выдал ошибку H10 --- после того как ввел показать лог. Приложение упало. Сервер кстати, кроссплатформенный --- uwsgi.

Вообще, официально у heroku документация есть только по развёртыванию с помощью сервера gunicorn.

Но вроде, как утверждают, что можно др. использовать, если для работы приложения требуется windows:



Здесь у автора статика, у меня спец.-файлы exe.
0
5 / 5 / 0
Регистрация: 25.09.2017
Сообщений: 494
14.09.2020, 00:35 4
Так, убрал из Procfile символы комментария:

Procfile:

web: uwsgi appName.ini

Теперь, после этого, когда я делаю http-запрос своей страницы, то вижу вот это:



всё же Линукс.) Люди, подскажите сервера, поддерживающие Windows, где можно развернуть веб-приложения, бизнес-логика которых требует выполнения в Windows.
Миниатюры
Heroku не видит файлы в папке  
0
5 / 5 / 0
Регистрация: 25.09.2017
Сообщений: 494
18.09.2020, 01:52 5
Продолжу в этой теме, посвященной видимости файлов. Если у меня есть пишущий процесс и он создал и записал некоторые данные в файл. А если я из того же контроллера (функция, что рендерит страницу) теперь буду читать данные из этого файла чтобы их записать в бд, это получится? Узлы (dyno) в heroku эфемерные и они вроде живут какое-то время после последнего обращения насколько я знаю. Т.е. файлы потом удаляются, если dyno "умирает".

Получится ли организовать доступ к файлу со стороны контроллера после его создания?

контроллер примерно такой:

Python
1
2
3
def controller():
     write() #создаю файл file в эфемерной ноде (dyno)
     send_to_db() # читаю file и отправляю его данные в бд
0
18.09.2020, 01:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.09.2020, 01:52
Помогаю со студенческими работами здесь

IDE не видит файл .png в папке drawable
В чем проблема? Размещайте изображения на форуме

Фотки на карте фотика не в папке DCIM/ Комп их не видит
Доброго времени суток! возникла проблема- при копировании с ноута ( через слот для карты) на карту...

File.Exists не видит файл в папке названный по русски
Всем здравствуйте. у меня простенькая форма (WindowsFormsApplication1), по кнопке ок работает...

Файлы в папке
Всем доброго времени суток, помогите пожалуйста с созданием программы, которая бы заносила названия...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru