3

継承された Django プロジェクトを実行しようとしています。私は virtualenv をセットアップし、 を介して要件ファイルを渡そうとしましたpip install -r requirements.txt。すべてがうまくいくようです。正しい virtualenv で動作していることがわかり、パッケージがインストールされているように見えます。

Downloading/unpacking django-mediasync==2.2.0 (from -r requirements.txt (line 22))
  Downloading django-mediasync-2.2.0.tar.gz
  Running setup.py egg_info for package django-mediasync

しかし、syncdb または runserver を実行しようとすると、

Unhandled exception in thread started by <bound method Command.inner_run of <django.contrib.staticfiles.management.commands.runserver.Command object at 0x10f15e290>>
Traceback (most recent call last):
  File "/Users/me/.virtualenvs/example/lib/python2.7/site-packages/django/core/management/commands/runserver.py", line 88, in inner_run
    self.validate(display_num_errors=True)
  File "/Users/me/.virtualenvs/example/lib/python2.7/site-packages/django/core/management/base.py", line 249, in validate
    num_errors = get_validation_errors(s, app)
  File "/Users/me/.virtualenvs/example/lib/python2.7/site-packages/django/core/management/validation.py", line 36, in get_validation_errors
    for (app_name, error) in get_app_errors().items():
  File "/Users/me/.virtualenvs/example/lib/python2.7/site-packages/django/db/models/loading.py", line 146, in get_app_errors
    self._populate()
  File "/Users/me/.virtualenvs/example/lib/python2.7/site-packages/django/db/models/loading.py", line 61, in _populate
    self.load_app(app_name, True)
  File "/Users/me/.virtualenvs/example/lib/python2.7/site-packages/django/db/models/loading.py", line 76, in load_app
    app_module = import_module(app_name)
  File "/Users/me/.virtualenvs/example/lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module
    __import__(name)
ImportError: No module named mediasync

奇妙なのは、mediasync(または他の必要なパッケージを)手動でインストールしたことです(pip install django-mediasync)、パッケージが見つかりました。

私は何を間違っていますか?これらのパッケージをすべて手動でインストールする必要はありません。

4

2 に答える 2

3

やっていると思います:pip install -r requirements.txtエラーがありましたが、気づきませんでした。基本的にエラーが発生した時点で全体の動作が停止します。

たとえば、次のrequirements.txtような 4 つのパッケージがあります。

A
B
C
D

インストール時にエラーが発生した場合B、 、3 つのパッケージBCおよびDはインストールされません。あるパッケージのインストールでエラーが発生し、requirements.txtまったくインストールされなかっdjango-mediasyncたようです。

私の仮説が正しければ、pip install -r requirements.txtトレースバックの最後の部分を確認してください。何かが失敗した場合、その理由が正確にわかります。

于 2013-07-23T14:27:16.467 に答える
1

やってますsudo pip install django-mediasyncsudo pip install -r requirements.txt?その場合、virtualenv の外にインストールします。virtualenv で「sudo」が必要なプログラムをインストールする方法を参照してください。.

基本的に、ユーザーは virtualenv ディレクトリを所有する必要があるため、pip 経由で何かをインストールするためにスーパーユーザー権限は必要ありません。which pipそうすれば、sudo which pipそれらが異なることがわかります。

その他の可能性として、requirements.txt が正しくインストールされていない可能性があります。あなたが言及した行のような行を出力するかもしれませんが、どうやらpipは何かをインストールする前にrequirements.txt内のすべてのパッケージをスキャンします。エラーが発生すると、すべてのパッケージのインストールが中止されます。

于 2013-07-23T02:49:31.777 に答える