質問: Pythonの初心者です。 Windouws10、Python3.8を使っております。 こちらの記事に従ってDjangoを使おうとしていました。 しかし、この記事の > > **仮想環境を使う** > > 仮想環境 env1 の中に入ってみます。 > > > > ``` > C:¥Users¥hoge¥Documents> cd env1 > C:¥Users¥hoge¥Documents¥env1> Scripts¥activate > (env1) C:¥Users¥hoge¥Documents¥env1> > > ``` > > このように (env1) と表示されれば成功です。 > > > を実行していたところで問題が起きました。 記事と同じようにコマンドプロンプトに ``` C:¥Users¥(ユーザー名)¥Documents>cd env1 C:¥Users¥(ユーザー名)¥Documents¥env1>Scripts¥activate ``` と入力したのですが、次の通り仮想環境(env1)に切り替わってくれないのです。 ``` C:¥Users¥(ユーザー名)¥Documents>cd env1 C:¥Users¥(ユーザー名)¥Documents¥env1>Scripts¥activate C:¥Users¥(ユーザー名)¥Documents¥env1> ``` どうやったら仮想環境に切り替わってくれるのでしょうか? 以下に関係があるかもしれないと思ったことを書きます。 ・virtualenvはちゃんとインストールできていると思います。 ``` C:¥Users¥(ユーザー名)>virtualenv --version virtualenv 20.0.7 from c:¥users¥(ユーザー名)¥appdata¥local¥programs¥python¥python38¥lib¥site-packages¥virtualenv¥__init__.py ``` ・env1を作った時に表示された結果です。 ``` C:¥Users¥(ユーザー名)¥Documents>virtualenv env1 created virtual environment CPython3.8.1.final.0-64 in 4268ms creator CPython3Windows(dest=C:¥Users¥(ユーザー名)¥Documents¥env1, clear=False, global=False) seeder FromAppData(download=False, pip=latest, setuptools=latest, wheel=latest, via=copy, app_data_dir=C:¥Users¥(ユーザー名)¥AppData¥Local¥Temp¥tmph_30tf6l¥seed-app-data¥v1) activators BashActivator,BatchActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator ``` ・「Scripts¥deactivate」を実行した場合は空行を挟まずに改行されます。 ``` C:¥Users¥(ユーザー名)¥Documents¥env1>Scripts\deactivate C:¥Users¥(ユーザー名)¥Documents¥env1> ``` どうかご回答をよろしくお願い致します。
回答: 該当の記事が最新の状況に合わせて更新されていないだけではないでしょうか? 単に、デフォルトのインストールではプロンプト文字列を変更しなくなったのだと思われます。 `Scripts\activate`実行の前後で環境変数を見較べてみましょう。 activateすると、環境変数に以下の変更が入り、deactivateすると元に戻ります。 * 環境変数`PATH`の先頭に`C:¥Users¥(ユーザー名)¥Documents¥env1\Scripts`フォルダが追加される * 環境変数`VIRTUAL_ENV`が増えて、仮想環境パス`C:¥Users¥(ユーザー名)¥Documents¥env1`が設定される * 環境変数`_OLD_VIRTUAL_PATH`が増えて、元の環境変数`PATH`の内容がコピーされる * 環境変数`_OLD_VIRTUAL_PROMPT`が増えて、元の環境変数`PROMPT`の内容がコピーされる またactivateの前後で `pip list -l` を実行してみれば、インストールされているモジュールに違いがあることがわかるでしょう。 上記が確認できていれば、仮想環境には切り替わっているが、プロンプト文字列が変更されていないだけ、と思われます。 プロンプト文字列を変更したいのであれば、`Scripts\activate.bat`の中身を書き換えて、好みの内容にカスタマイズすれば良いでしょう。