1

南を使用しようとすると、この問題が原因で次のエラーが発生します。

$ python manage.py schemamigration
You must provide an app to create a migration for.
$ python manage.py schemamigration myapp --initial
OSError: [Errno 13] Permission denied: '../myapp/migrations'
$ sudo python manage.py schemamigration myapp --initial
ImportError: No module named django.core.management
$ python
>>> import south
>>> import django.core.management
>>> south.__file__
'/home/mydev/venv/lib/python2.7/site-packages/south/__init__.pyc'
>>> django.__file__
'/home/mydev/venv/lib/python2.7/site-packages/django/__init__.pyc'

manage.py schemamigrationによって返されるように見えるエラーメッセージを生成するように私には思えますschemamigration。しかしschemamigration、他の南のコマンドは、呼び出されると django を見つけることができません。

'/home/mydev/venv/lib/python2.7/site-packages/'私のsys.pathにあります。/southフォルダーは、フォルダー内にある実際の南パッケージへの sim リンクです/dist-packages。実際のフォルダーにsimリンクを/southdjangoパッケージに戻しましたが、何も解決しませんでした。

何が間違っている可能性がありますか?

4

1 に答える 1

2

この問題は、パーミッションと virtualenv の使用が原因です。現在のユーザーにはこのプロジェクトの書き込み権限がないため、「権限が拒否されました」というエラーが発生しました。

プロジェクト全体の権限を変更し、プロジェクト内のすべてのファイルとフォルダーの所有者として現在のユーザーにすることができます

sudo chown -R <username>:<username> <project_folder>

sudo を使用して移行を実行しようとすると、通常のユーザーによってアクティブ化された virtualenv にあるため、django パッケージを見つけることができませんでした。アクセス許可を変更したくない場合は、これらの手順でこれを解決できるはずです。

sudo -i
source /<virtualenv_path>/bin/activate

これにより、sudo の virtualenv がアクティブになり、virtualenv 内のすべてのパッケージにアクセスできるようになります。

私はあなたが許可方法に行くべきだと思います

于 2013-01-14T22:10:56.180 に答える