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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

1回答

2343閲覧

仮想環境にdjangoがあるのに、データベースを構築する時にmanage.pyでCouldn't import Django.が返ってくる

shun222

総合スコア14

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/09/11 09:53

編集2021/09/14 11:53

環境

  • 仮想環境 : piplist

asgiref

1Django 3.2.7 2pip 21.1.1 3pytz 2021.1 4setuptools 56.0.0 5sqlparse 0.4.2
  • 仮想環境 :activate済
  • エディタ:Vscode

解決したいこと

djangoはインストールしました。
エラー内容からdjangoがインストールされていないか、PYTHONPATHが通っていないかと思ったんですが、
PYTHONPATHのほうが~/.bash_procfileにどんなPATHを設定したら良いのかわかりません。
PATHを設定するならどんなパスを設定すればいいのでしょうか?
どこからそのパスを持ってくることができますか?
ローカル環境では動作させられたがherokuで動かない

実行コード

heroku run python django_todo/manage.py migrate

エラー内容

Running python django_todo/manage.py migrate on ⬢ tasklineapp... up, run.6687 (Free) Traceback (most recent call last): File "django_todo/manage.py", line 12, in main from django.core.management import execute_from_command_line ModuleNotFoundError: No module named 'django' The above exception was the direct cause of the following exception: Traceback (most recent call last): File "django_todo/manage.py", line 23, in <module> main() File "django_todo/manage.py", line 14, in main raise ImportError( ImportError: Couldn't import Django. Are you sure it's installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment?

やったこと

  • Procfileの追加
  • requirementsファイルの作成
  • djangoのインストール

別のエラー

Vscodeのmanage.pyに黄色のニョロニョロがついていて、内容が

Import "django.core.management" could not be resolved from source

他わからなかったこと

PYTHONPATHの設定をしようとしたのですが、~/.bash_procfileにどのパスを設定したらいいかわからりません

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

holy_

2021/09/12 20:24

requirement.txtはルートディレクトリ直下におかれていますか?
退会済みユーザー

退会済みユーザー

2021/09/13 04:47 編集

もしローカル環境では動作させられたが、herokuで動かないという話なのであれば、質問にそう書いた方がいいでしょう。そしてタグにherokuを入れた方がいいですね。 python用のherokuのtutorialは↓で、djangoを扱っています。 https://devcenter.heroku.com/articles/getting-started-with-python これを一度やってみた後にご自分のアプリを試してみるといいと思います。 ただし、こちらの方法で使用するdjangoのバージョンは3ではなく2になります。 あとmanage.pyから起動できるのは開発用のサーバーなので、herokuのような不特定多数からアクセス可能な場所では使用しません。不特定多数からアクセスできる場所は悪い人もいるので、herokuはもう少し詳しくなってから使用した方がいいかもしれません。
shun222

2021/09/13 12:00

自分がやりたいことはdjangoでAPIを作って、それをherokuのデータベースに接続すること herokuでデータベースを作成するのに,heroku run python manage.py migrateコマンドを打つと、 このサイトhttps://qiita.com/ekzemplaro/items/41d39d398287774b9f1eを参考にしました。
退会済みユーザー

退会済みユーザー

2021/09/13 20:26

やはりherokuなのですね。おっしゃることは分かるのですが、herokuの場合、開発用のサーバーは使わないということです(できないわけではありませんが)。そのサイトでもrequirements.txtに django-heroku==0.3.1 gunicorn==19.9.0 などがあります。このgunicornが本番用のサーバーに該当します。 https://devcenter.heroku.com/articles/django-app-configuration また最初に申し上げましたとおり、お手数ですが質問に「ローカル環境では動作させられたがherokuで動かない」と書いて、タグにherokuを入れて頂けないでしょうか? また記事ではsqliteを使用しているようですが、sqliteではheroku上のインスタンスが破棄されたらDBが消えてしまいますし、スケールすることもできません。その辺はご注意ください。 記事の再現実験はしていませんが、記事通りであればmigrationは出来ると思います。あなたが作成したgitリポジトリのどこに.git/があるか知りませんが、記事と同じ位置にあればあなたの環境でも同じコマンドでmigration出来ると思います。手っ取り早くインスタンス起動後に直接操作するのであれば $ heroku run bash でシェルから操作することも出来ます。普通にLinuxの標準的なコマンドが使えますよ。
退会済みユーザー

退会済みユーザー

2021/09/14 12:47

多分前提となる基礎的な知識が不足しているのでしょうね。 まず、質問上「仮想環境」と言ってるのはvenvのことですか? もしそうならherokuでは使用しません。reuirements.txtにより自動的にインストールされています。 とりあえずいろいろ不明点が多いので、まずは $ heroku run bash -c "find . -type d -not -path './.heroku/*'" の実行結果を貼ってもらえますか?サーバー名は隠してくださいね。
退会済みユーザー

退会済みユーザー

2021/09/14 12:51

ちなみに私が昔作ったサンプルだとこんな感じになります $ heroku run bash -c "find . -type d -not -path './.heroku/*'" Running bash -c "find . -type d -not -path './.heroku/*'" on ⬢ サーバー名... up, run.2449 (Free) . ./.heroku ./.profile.d ./at_heroku ./at_heroku/__pycache__ ./staticfiles ./staticfiles/admin ./staticfiles/admin/js ./staticfiles/admin/js/vendor ./staticfiles/admin/js/vendor/select2 ./staticfiles/admin/js/vendor/select2/i18n ./staticfiles/admin/js/vendor/xregexp ./staticfiles/admin/js/vendor/jquery ./staticfiles/admin/js/admin ./staticfiles/admin/fonts ./staticfiles/admin/css ./staticfiles/admin/css/vendor ./staticfiles/admin/css/vendor/select2 ./staticfiles/admin/img ./staticfiles/admin/img/gis ./sample ./sample/__pycache__ ./sample/migrations $
shun222

2021/09/15 14:22

いろいろアドバイスをくださりありがとうございます。 なんとかなりました。
guest

回答1

0

pythonの仮想環境をどのように作っているか情報がないと正しい答えは難しいです。
virtualenvやvenvの場合はactivateのスクリプトに設定する環境変数が書いてありますので、それを参考にするのがいいと思います。

それと、たぶんですが、設定するのはPYTHONPATHじゃなくてVIRTUAL_ENVじゃないかと思います。

以下venvにあるactivateの一部です。

bash

1VIRTUAL_ENV="/hoge/foo/venv" 2export VIRTUAL_ENV 3 4_OLD_VIRTUAL_PATH="$PATH" 5PATH="$VIRTUAL_ENV/bin:$PATH" 6export PATH

投稿2021/09/14 14:01

TANAKAKazuyoshi

総合スコア96

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問