2016-04-19 13 views
0

私はDokuWikiにDjangoプロジェクトをデプロイしましたが、問題が発生しました:virtualenvフォルダ内にパッケージがあり、エラーが表示されます。
これは一言で言えばHerokuでのVirtualenvパッケージの問題(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のフォルダがにプッシュされていないので、私は、このエラーに遭遇ヘロク。

ヘロクにデプロイするときにvirtualenvフォルダを.gitignoreに入れる必要があります(そうではありませんか?)、どうすればこの問題を回避できますか?

+0

heroku repoにプッシュされていないパッケージファイルは編集しないでください。 – ahmed

+0

Okですが、一部の機能を変更するために編集する必要がある場合はどうすればよいですか?そうする別の方法がありますか? –

答えて

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 updates requirements.txtを使用してpilを追加し、herokuサーバーにもPILをインストールする場合。

パッケージの必要なファイルをオーバーライドします。これを行うには、pipパッケージと同じ名前のディレクトリを作成し、編集しなければならないものと同じ名前のファイルを作成します。その後、このディレクトリにプッシュします。

関連する問題