web-dev-qa-db-ja.com

Virtualenvをインストールし、virtualenvをアクティブにできない

GithubアカウントからDjango Projectを複製し、有名なコマンドsource nameofenv/bin/activateそして、実行するとpython manage.py runserver

次のエラーが表示されます:

ImportError:Djangoをインポートできませんでした。 PYTHONPATH環境変数にインストールされており、使用可能ですか?仮想環境をアクティブにするのを忘れましたか?

12
abhi_bond

私は必要なすべての依存関係がvirtualenv内に存在する可能性があると考えていました。

うーん、ダメ。デフォルトでは、新しく作成されたvirtualenvは空になります。つまり、サードパーティのライブラリはありません。 (オプションで、virtualenvがシステム全体にインストールされたライブラリにアクセスすることを許可できますが、それは別の話です。)

Virtualenvが作成されたら、必要な依存関係をインストールする必要があります。

(virtualenvは必要な依存関係をどのように知ることができますか?)

手順は、virtualenvをインストールし、アクティブにしてから、プロジェクトに必要なライブラリをインストールすることです(場合によってはDjangoおよびおそらくその他)。

プロジェクトにrequirements.txtがある場合、次のコマンドを使用して必要なすべての依存関係をインストールできます。

pip install -r requirements.txt

プロジェクトにsetup.pyがある場合は、実行することもできます

pip install -e path/to/your/project/clone/.

プロジェクトをvirtualenvにインストールします。これにより、依存関係がインストールされます。

もちろん、依存関係がDjangoのみである場合は、次のように入力できます。

pip install Django
17
Jérôme

ubuntuバージョン

#install python pip 
Sudo apt-get install python-pip
#install python virtualenv
Sudo apt-get install python-virtualenv
# create virtual env 
virtualenv  myenv
#activate the virtualenv
. myenv/bin/activate
#install Django inside virtualenv
pip install Django
#create a new Django project
Django-admin.py startproject mysite
#enter to the folder of the new Django project
cd mysite
#run the Django project
python manage.py runserver 
10

マシンに複数のpythonがある場合(たとえば、python2.7python3.4python3.6)、pythonのバージョンを判別するためにインポートされます。 pipを参照するバージョンを実際に参照します。

次のコマンドを実行するときにlet's encryptをインストールした後、同じ問題が私の邪魔になりました。

(python3 manage.py runserver 0:8000 &)

pythonバージョンを調べたところ、python3python3.4python3.6python3.4mがすべて使用可能であることがわかりました。

python3python3.6に変更して、問題を解決しました。

(python3.6 manage.py runserver 0:8000 &)

そのため、長期間問題がなく、突然クラッシュした場合、これはおそらくバージョン不一致の問題です。

4
W.Perrin

他のPCからも仮想環境をアップロードすると思います。そして、あなたはそれを有効にすることだけがうまくいくことを願っています、bzz。

@Alainによると、プロジェクトの依存関係を含むrequirements.txtファイルを持つことをお勧めするため、virtualenvファイルをgitリポジトリにアップロードすることはお勧めしません。 pip freeze > requirements.txt(環境がアクティブ化されるとき)を使用して、プロジェクト要件ファイルを生成できます。

そうすることで、別のコンピューターからリポジトリーのクローンを作成するときに、次のコマンドを発行して新しいvirtualenvを作成する必要があります。

virtualenv nameofenv

それをアクティブにします:

source nameofenv/bin/activate

最後に、要件ファイルを使用して、プロジェクトの要件をインストールします:

pip install -r requirements.txt
3
slackmart

私はDjango 2 via pip3 install Django、しかし私はpython manage.py runserver の代わりに python3 manage.py runserver。 Django 2は、python 3+。

0
cph2117