4

Django アプリを使用していますが、コードを実行しようとするとエラーが発生します。

Error: No module named django_openid

少し戻って、私がこれに至った経緯をお話ししましょう。

  1. 私は自分のコンピューターをフォーマットし、すべてを完全に再インストールしました.
  2. 私はやってみpython manage.py syncdbましたが、エラーが発生しました

私はこの問題をグーグルで検索しましたが、多くの人がパスの問題である可能性があると言っています。

ただし、パス変数を変更する方法と、それらが正確に何を意味するのかについて混乱しています。いくつかのドキュメントを見つけましたが、ややハックっぽい初心者なので、頭を悩ませています。

だから私の質問は:

  1. それらの目的は正確には何ですか? また、Python のバージョンに基づいたシステム ベースのレベルにあるのか、それともプロジェクトに依存しているのか?
  2. 鉱山が現在何に設定されているかを確認するにはどうすればよいですか?
  3. それらを変更するにはどうすればよいですか(つまり、彼らが話しているこの.profileファイルはどこにあり、テキストエディターを使用できますか)

これは私を困惑させており、コードを書くことに戻りたいだけなので、あなたが持っているどんな意見も素晴らしいでしょう:-)

4

2 に答える 2

6

これpathは、インポートしようとしているモジュールを python が検索するファイルシステム内の場所です。たとえば、 を実行すると、Python はパス (変数)に含まれるすべての場所でimport somemodule検索を実行します。somemodulesys.path

モジュールのpath属性を確認する必要があります。sys

import sys
print sys.path

これは単なる通常のリストなので、要素を追加/削除できます。

sys.path.append('/path/to/some/module/folder/')

開始するすべての Python セッションのパスを変更する場合は、起動時にロードされるファイルを作成する必要があります。

  1. PYTHONSTARTUP環境変数を作成し、スタートアップ ファイルに設定します。例: PYTHONSTARTUP=/home/user/.pythonrc(UNIX シェルの場合);
  2. Python のロード時に自動実行するコマンドが含まれるように、スタートアップ ファイルを編集します。

の例は.pythonrc次のとおりです。

import sys
sys.path.append('/path/to/some/folder/')
于 2012-09-04T13:50:21.573 に答える
2

本当にパスを変更する必要がありますか? 最初に自分の理由を実際に考えることが常に最善です。サーバー上でアプリケーションを 1 つだけ実行する場合、または不要な可能性のあるパッケージでシステム パッケージ ディレクトリを汚染することを気にしない場合は、すべてをメイン システムの site-packages または dist-packages ディレクトリに配置します。それ以外の場合は、virtualenv を使用してください。

システム レベルのパッケージ ディレクトリは、常にパス上にあります。Virtualenv は、アクティブ化されたときに site-packages ディレクトリをパスに追加し、Django は、アクティブ化されたときにプロジェクト ディレクトリをパスに追加します。パスに他に何かを追加する必要はありません。実際には、実際に心配する必要はありません。

于 2012-09-04T14:27:34.120 に答える