Не найдено подходящего распределения для pickle при использовании require.txt и Heroku - PullRequest
0 голосов
/ 26 апреля 2019

Я использую Heroku, чтобы попытаться развернуть свое приложение. После подключения к моему репозиторию Github, затем в разделе «Развертывание вручную» я нажал «Развернуть ветку»

Репозиторий Github содержит requirements.txt, который содержит

numpy
pandas
matplotlib
pickle
gunicorn
flask

Ошибка на Heroku говорит

   Collecting pickle (from -r /tmp/build_0f73c7cf93d0cf7e0d53415c51d2e21f/requirements.txt (line 4))

     Could not find a version that satisfies the requirement pickle (from -r /tmp/build_0f73c7cf93d0cf7e0d53415c51d2e21f/requirements.txt (line 4)) (from versions: )

   No matching distribution found for pickle (from -r /tmp/build_0f73c7cf93d0cf7e0d53415c51d2e21f/requirements.txt (line 4))



!     Push rejected, failed to compile Python app.

 !     Push failed

Тем не менее, pickle, похоже, установлено на моем компьютере с Ubuntu. Когда я набираю python на терминале, а затем import pickle, я не вижу никаких ошибок

Кроме того, когда я пытаюсь

filename = 'outfile.pickle'
outfile = open(filename,'wb')
pickle.dump(dataframe,outfile)
outfile.close()

Я вижу файл рассола в моем каталоге

Почему я получаю эту ошибку в Heroku?

1 Ответ

0 голосов
/ 26 апреля 2019

Непосредственной проблемой является то, что pickle - это модуль в стандартной библиотеке Python . Нет необходимости устанавливать его (и, следовательно, нет необходимости включать его в файл requirements.txt).

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

Однако вам, вероятно, не следует запускать этот код на Heroku, даже если вы можете его собрать. Файловая система Heroku эфемерна . Сохраненные файлы будут потеряны при следующем перезапуске dyno. Это часто случается ( хотя бы раз в день) .

Вы можете сохранить данные в базе данных клиент-сервер, например Сервис Heroku Postgres или, если вам действительно нужно сохранить файлы Heroku рекомендует использовать что-то вроде Amazon S3 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...