2016-04-19 2 views
0

Я развернул проект Django в Heroku, но у меня возникла проблема: есть пакет, находящийся внутри папки virtualenv, что дает мне ошибку.
Это отслеживающийПроблема с пакетом Virtualenv при развертывании Heroku (приложение Django)

Environment: 


Request Method: POST 
Request URL: https://pin-a-voyage.herokuapp.com/login/ 

Django Version: 1.8 
Python Version: 2.7.6 
Installed Applications: 
('django.contrib.admin', 
'django.contrib.auth', 
'django.contrib.contenttypes', 
'django.contrib.sessions', 
'django.contrib.messages', 
'django.contrib.staticfiles', 
'blog', 
'custom_user', 
'django_markdown', 
'parsley') 
Installed Middleware: 
('django.contrib.sessions.middleware.SessionMiddleware', 
'django.middleware.common.CommonMiddleware', 
'django.middleware.csrf.CsrfViewMiddleware', 
'django.contrib.auth.middleware.AuthenticationMiddleware', 
'django.contrib.auth.middleware.SessionAuthenticationMiddleware', 
'django.contrib.messages.middleware.MessageMiddleware', 
'django.middleware.clickjacking.XFrameOptionsMiddleware', 
'django.middleware.security.SecurityMiddleware', 
'whitenoise.middleware.WhiteNoiseMiddleware') 


Traceback: 
File "/app/.heroku/python/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response 
    132.      response = wrapped_callback(request, *callback_args, **callback_kwargs) 
File "/app/blog/views.py" in login 
    147.     auth_login(request, user) 
File "/app/.heroku/python/lib/python2.7/site-packages/django/contrib/auth/__init__.py" in login 
    117.  user_logged_in.send(sender=user.__class__, request=request, user=user) 
File "/app/.heroku/python/lib/python2.7/site-packages/django/dispatch/dispatcher.py" in send 
    201.    response = receiver(signal=self, sender=sender, **named) 
File "/app/.heroku/python/lib/python2.7/site-packages/django/contrib/auth/models.py" in update_last_login 
    26.  user.save(update_fields=['last_login']) 
File "/app/custom_user/models.py" in save 
    62.    new_image = resizeimage.resize_width(pil_image_obj, 300) 
File "/app/.heroku/python/lib/python2.7/site-packages/resizeimage/resizeimage.py" in wrapper 
    31.     validator(image, size) 
File "/app/.heroku/python/lib/python2.7/site-packages/resizeimage/resizeimage.py" in _width_is_big_enough 
    47.   raise ImageSizeError(image.size[0], width) 

Exception Type: ImageSizeError at /login/ 
Exception Value: 'Image is too small, Image size : 300, Required size : 300' 

В двух словах: я загрузить профиль ПОС, но я бегу в эту ошибку, потому что я изменил пакет на папку virtualenv, но папка virtualenv не прижата к Heroku.

Поскольку виртуальная папка должна быть помещена в .gitignore при развертывании в Heroku (не так ли?), Как я могу избежать этой проблемы?

+0

Вы не должны редактировать какие-либо файлы пакетов, они не будут перенаправлены на ваш репортаж heroku. – ahmed

+0

Хорошо, но что, если мне нужно было отредактировать его, чтобы изменить некоторые функции? Есть ли другой способ сделать это? –

ответ

0

Если вам необходимо внести местные изменения в пакет (но подумайте, не внося или не создавая новую версию), тогда вы можете скопировать этот пакет в проект Django и использовать его так, как если бы вы его сами написали. То есть Как обычное приложение Django в вашем проекте.

0

В большинстве случаев нельзя редактировать файлы в виртуальной среде. Это потому, что virtual environment holds packages installed with pip only in the local system. Однако разработчик может редактировать код установленного приложения, если это не может быть достигнуто при использовании опций/атрибутов, предоставляемых пакетом.

Вы можете настроить индивидуальный код установленного приложения и использовать его в своей производственной среде с помощью overriding file with custom code. См. Пример reusable apps.

Первый make sure updated requirements.txt is pushed to your production environment. Из трассировки стека /site-packages/resizeimage/ вызывает у вас проблемы. Если вы используете PIL update requirements.txt, чтобы включить pil и установить PIL на сервер heroku.

затем переопределить необходимые файлы вашего пакета. Для этого вы можете создать каталог с тем же именем, что и для пакета pip, а затем создать файл с тем же именем, который вы должны отредактировать. После этого нажмите этот каталог.

 Смежные вопросы

  • Нет связанных вопросов^_^