2017-08-04 4 views
0

私のサーバにDjangoをセットアップしました。Django:仮想環境でサーバを実行するためにsudoを使用

私は私の仮想環境を起動していると私はポート8000​​で正常にサーバを実行することができるよ

python manage.py runserver 

私はポート80を使用したいので、私は(テスト)にアクセスすることができるよ私のアプリをから外の私が使用しそう:

sudo python manage.py runserver 

しかし、これは私にエラー与える:

Traceback (most recent call last): 

     File "manage.py", line 17, in <module> 
     "Couldn't import Django. Are you sure it's installed and " 
    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? 

誰かがexplaてくださいすることができをなぜ?

+2

あなたは**このようなことをsudoで実行してはいけません。それは巨大なセキュリティリスクです。 –

答えて

1

問題は、あなたがsudoコマンドなしvirtualenvを作成した場合、

virtualenvは、作成したユーザーが利用できる独立した環境である

ので、あなたがsudoコマンドなしpython manage.py runserverを実行した場合、それが正しく実行されますが発生

か、他installdjangosudo権利とを尽くすsudo python manage.py runserver

0

あなたのvirtualenvの中には、sudoを使わずに、あなたのユーザ用にインストールされたアプリケーションを確認できます。

~$ cd myproject/bin 
~$ source activate 
[myproject]~$ pip list | grep Django 

あなたの現在のvirtualenvの内に設置されたあなたはDjangoバージョン、例えば

Django (1.8) 

しかし、この意志出力:

[myproject]~$ sudo pip list | grep Django 

が出力として何も与えません。だから、あなたのdjangoパッケージは、sudoパーミッションの中でinsallされていませんでした。ところで、

[myproject]~$ sudo pip install django 

内のroot権限を使用してコマンドを実行することをお勧めではありません。そして、これはあなたのすべてのコマンドにsudoを追加する必要がある場合、あなたは、sudoでジャンゴをインストールする必要がある理由ですあなたのvirtualenvは別の環境だからです。

関連する問題