4

ローカルの git リポジトリで django アプリケーションを開発しました。プロジェクトの EC2 インスタンスを起動し、正しいパッケージ/依存関係 (と思われるもの) を使用して virtualenv をセットアップしました。次に、レポを virtualenv に複製しました。現在、次のエラーが発生しているため、問題が発生しています。

python manage.py runserver example.com/8080テストに使ってみました。source bin/activateローカルの virtualenv で行ったのと同じように、必ず を使用して virtualenv を有効にしました。電話する... runserverと、次のエラーが表示されます。

Traceback (most recent call last):
  File "manage.py", line 8, in <module>
    from django.core.management import execute_from_command_line
ImportError: No module named django.core.management

sudo pip freeze生成されるものは次のとおりです。

Warning: cannot find svn location for distribute==0.6.24dev-r0
Cheetah==2.4.4
Django==1.5.2
Fabric==1.8.0
GnuPGInterface==0.3.2
Landscape-Client==12.05
M2Crypto==0.21.1
PAM==0.4.2
PyYAML==3.10
South==0.8.2
Twisted-Core==11.1.0
Twisted-Names==11.1.0
Twisted-Web==11.1.0
apt-xapian-index==0.44
argparse==1.2.1
boto==2.2.2
chardet==2.0.1
cloud-init==0.6.3
command-not-found==0.2.44
configobj==4.7.2
## FIXME: could not find svn URL in dependency_links for this package:
distribute==0.6.24dev-r0
django-s3-folder-storage==0.1
django-storages==1.1.8
django-tastypie==0.10.0
ecdsa==0.9
euca2ools==2.0.0
gunicorn==18.0
httplib2==0.7.2
keyring==0.9.2
language-selector==0.1
launchpadlib==1.9.12
lazr.restfulclient==0.12.0
lazr.uri==1.0.3
medusa==0.5.4
meld3==0.6.5
oauth==1.0.1
paramiko==1.12.0
psycopg2==2.5.1
pyOpenSSL==0.12
pycrypto==2.4.1
pycurl==7.19.0
pyserial==2.5
python-apt==0.8.3ubuntu7.1
python-dateutil==2.1
python-debian==0.1.21ubuntu1
simplejson==2.3.2
six==1.4.1
supervisor==3.0a8
ufw==0.31.1-1
unattended-upgrades==0.1
virtualenv==1.10.1
wadllib==1.3.0
wsgiref==0.1.2
zope.interface==3.6.1

...そしてこれは私の./manage.pyファイルです:

#!/usr/bin/env python
import os
import sys

if __name__ == "__main__":
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "my_project.settings")

    from django.core.management import execute_from_command_line

    execute_from_command_line(sys.argv)

このエラーを修正する方法について何か考えはありますか? に変更#!/usr/bin/env python#!/var/www/paletto-env/bin pythonて、実際のpythonパスに向けようとしましたが、明らかな変更には役立たなかったので、元に戻しました。

助けてくれてありがとう。

4

5 に答える 5

3

私はあなたとまったく同じ問題を抱えていましたが、これが私がそれを解決した方法です(免責事項:これが絶対に正しい方法であるかどうかはわかりませんが、私にとってはうまくいき、すべてが正しいようです)。

簡潔な答え:

pip install (package)代わりに試してくださいsudo pip install (package)

長い答え:

私は Django の完全なインストール ドキュメント (ここを参照) をざっと読んだところ、仮想環境で pip を使用する場合、基本的にスーパー ユーザー権限は必要ないという内容に出くわしました。どちらでもいいと思っていたのですが、そうではない可能性が高いことに気づきました。

入力しsudo pip install djangoたため、プロジェクトのvirtualenvのローカルビンの上のどこかにインストールされたと思われます。python manage.py runserver入力するとエラーが発生するため、これを疑っています。ただし、入力するとsudo python manage.py runserverすべてが正常に機能します。

また、入力するsudo pip freezeと、より大きなライブラリがpip freeze表示されますが、virtualenv のローカル ライブラリが表示されます。

すべての前に入力したくなかったのでsudo (do stuff)、きれいで適切なvirtualenvが必要だったので、djangoを再インストールしましたが、ローカルの仮想envにpip install djangodjangoが適切なvirtualenvライブラリにありpip freeze、適切なコンテンツを返し、適切にpython manage.py runserver機能します!

于 2014-08-12T18:04:29.507 に答える
3

Django が明らかにピップ フリーズしていても、環境で Django が見つからないようです。

仮想環境から Python (Django ではない) シェルを開いて、次のように入力してみてください。

import django
django.VERSION

同じエラーが発生した場合は、Django のインストールに問題がある可能性があります。仮想環境はおそらくそれを見つけることができません。パス設定を変更するか、Django を再インストールしてください。

Django を正常にインポートできる場合、または再インストールを試みても機能しない場合は、パーミッションに問題がある可能性があります。サーバーの実行を担当するユーザーが、virtualenv から Python ライブラリが保存されている場所にアクセスできることを確認してください。

于 2013-10-12T00:52:59.570 に答える
1

django-admin.py startprojectデフォルトではmanage.pywith でシバンを作成します#!/usr/bin/env python

これが Python 実行可能ファイルへのパスでない場合、または を使用している場合は、これを反映するようpython3に編集します。manage.py

于 2014-05-23T13:21:45.250 に答える
0

virtualenv をアクティブ化した後、すべての python パッケージをもう一度再インストールします。

于 2013-10-12T08:22:35.653 に答える