質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.23%

Djangoでrender_to_responseがインポートできないというエラーが出ます

解決済

回答 2

投稿

  • 評価
  • クリップ 1
  • VIEW 567

前提・実現したいこと

環境:pycharm
ライブラリ:Django2.2.2

Djangoで動的なWebサイトを作成しています。
その中で、マイグレーションを行うためにPycharmのRunメニューを編集しています。
いちいち、仮想環境で

(venv_private_diary)$python manage.py makemigration
(venv_private_diary)$python manage.py migrate


を実行するのが不便だからです。
Runメニューを編集後、makemigrationを実行すると以下のようなエラーが出てきました。

Traceback (most recent call last):
  File "/Users/ilovephys/Desktop/venv_private_diary/bin/private_diary/manage.py", line 21, in <module>
    main()
  File "/Users/ilovephys/Desktop/venv_private_diary/bin/private_diary/manage.py", line 17, in main
    execute_from_command_line(sys.argv)
  File "/Users/ilovephys/.pyenv/versions/3.6.5/lib/python3.6/site-packages/django/core/management/__init__.py", line 401, in execute_from_command_line
    utility.execute()
  File "/Users/ilovephys/.pyenv/versions/3.6.5/lib/python3.6/site-packages/django/core/management/__init__.py", line 395, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/Users/ilovephys/.pyenv/versions/3.6.5/lib/python3.6/site-packages/django/core/management/base.py", line 328, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/Users/ilovephys/.pyenv/versions/3.6.5/lib/python3.6/site-packages/django/core/management/base.py", line 366, in execute
    self.check()
  File "/Users/ilovephys/.pyenv/versions/3.6.5/lib/python3.6/site-packages/django/core/management/base.py", line 395, in check
    include_deployment_checks=include_deployment_checks,
  File "/Users/ilovephys/.pyenv/versions/3.6.5/lib/python3.6/site-packages/django/core/management/base.py", line 382, in _run_checks
    return checks.run_checks(**kwargs)
  File "/Users/ilovephys/.pyenv/versions/3.6.5/lib/python3.6/site-packages/django/core/checks/registry.py", line 72, in run_checks
    new_errors = check(app_configs=app_configs)
  File "/Users/ilovephys/.pyenv/versions/3.6.5/lib/python3.6/site-packages/django/core/checks/urls.py", line 40, in check_url_namespaces_unique
    all_namespaces = _load_all_namespaces(resolver)
  File "/Users/ilovephys/.pyenv/versions/3.6.5/lib/python3.6/site-packages/django/core/checks/urls.py", line 57, in _load_all_namespaces
    url_patterns = getattr(resolver, 'url_patterns', [])
  File "/Users/ilovephys/.pyenv/versions/3.6.5/lib/python3.6/site-packages/django/utils/functional.py", line 48, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "/Users/ilovephys/.pyenv/versions/3.6.5/lib/python3.6/site-packages/django/urls/resolvers.py", line 588, in url_patterns
    patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
  File "/Users/ilovephys/.pyenv/versions/3.6.5/lib/python3.6/site-packages/django/utils/functional.py", line 48, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "/Users/ilovephys/.pyenv/versions/3.6.5/lib/python3.6/site-packages/django/urls/resolvers.py", line 581, in urlconf_module
    return import_module(self.urlconf_name)
  File "/Users/ilovephys/.pyenv/versions/3.6.5/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/Users/ilovephys/Desktop/venv_private_diary/bin/private_diary/private_diary/urls.py", line 22, in <module>
    path('accounts/', include("allauth.urls")),
  File "/Users/ilovephys/.pyenv/versions/3.6.5/lib/python3.6/site-packages/django/urls/conf.py", line 34, in include
    urlconf_module = import_module(urlconf_module)
  File "/Users/ilovephys/.pyenv/versions/3.6.5/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/Users/ilovephys/.local/lib/python3.6/site-packages/allauth/urls.py", line 5, in <module>
    from allauth.django_utils.admin import *
  File "/Users/ilovephys/.local/lib/python3.6/site-packages/allauth/django_utils/admin.py", line 5, in <module>
    from django.shortcuts import render_to_response
ImportError: cannot import name 'render_to_response'


長いエラー文の最後に

from django.shortcuts import render_to_response
ImportError: cannot import name 'render_to_response'


と出てきます。しかし、render_to_responseがimportされているファイル「python3.6/site-packages/allauth/urls.py」は今まで触ったこともないファイルですので、エラーになる理由が全くわかりません。

試したこと

ひとまず、エラー文で出てきたファイルは一つひとつ辿り自分が編集した範囲でミスがないか確認を行いました。
その中には自分が編集しゅたことのあるファイルは一つも含まれていませんでした。

助けて下さい!!

お忙しい中恐縮ですが、皆様の知恵を借りれたらなと思っております。
どうぞよろしくお願いいたします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

+3

PyCharm で使われる Python インタープリターは PyCharm 内で設定したものが使われます
そのため、コマンドラインのインタープリターでは仮想環境内にパッケージがインストールされていて
問題なく動作するコードも、
PyCharm で実行すると、インタープリターや仮想環境が違ったりすることが原因で
パッケージが参照できず、正しく動作しない場合があります

PyCharm でインタープリターを設定する方法は次の Help を参照してください:
Configure a system interpreter - Help | PyCharm

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

checkベストアンサー

+1

いちいち、仮想環境で

PyCharmを使用するのであれば、PyCharmが提供するDjango環境の流儀を無視すると、棘の道ですよ。
そもそもPyCharmでプロジェクトを起動すれば、Terminalは仮想環境をactivateした状態になっているはずです。

何が不便だとお考えでしょうか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/07/24 00:24

    回答ありがとうございます。
    まだPyCharmのことがよく分かっていないので、見当違いの質問返しになってしまっているかも知れないことをお許し下さい。

    >PyCharmでプロジェクトを起動すれば、Terminalは仮想環境をactivateした状態になっているはずです。

    「仮想環境をactiateした状態になっているので、マイグレーションはそもそも不要です。」
    という意味でしょうか。
    また、編集したいディレクトリに入るたびに毎回 source activateをterminalに入れているのですが、実はこの作業は不要だったりしますか?

    キャンセル

  • 2020/07/24 14:55

    Python仮想環境のアクティベーションと、Djangoのマイグレーションは別物です。
    仮想環境のアクティベーションは、当該仮想環境を有効にするものです。
    また、Djangoのマイグレーションは、モデルに合わせてデータベースのスキーマを更新するものです。
    よって、モデルを更新したとき、マイグレーションは必須です。

    > また、編集したいディレクトリに入るたびに毎回 source activateをterminalに入れているのですが
    PyCharmでプロジェクトを作成するとき、PyCharmがユーザーに新しい仮想環境を作成するか、既存の仮想環境を使用するか確認します。PyCharmのTerminalを開けば、その仮想環境をアクティブにしたTerminalが起動します。
    PyCharmのTerminalで`activate`しているということは、プロジェクトの仮想環境が設定されていない状態ではないでしょうか。

    > 実はこの作業は不要だったりしますか?
    Terminalの状態を確認しないと仮想環境が有効になっているかわかりません。
    プロンプトに仮想環境の名前が表示されているか、`pip freeze`したときに、仮想環境にインストールしたパッケージが表示されているのであれば、仮想環境が有効になっており不要です。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.23%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る