69672


自分はWindows10、Python3.8.1、virtualenv20.0.7を使っております。  
virtualenvの使い方を学び直していたら次の問題にあたりました。

質問内容は「なぜ仮想環境を起動させながらpipでインストールしたモジュール（ここでは練習用としてpip-
reviewを選びました）なのに、仮想環境を終了させた後にもインストールされていることがpip listで確認できるのか？」ということです。  
仮想環境でインストールしたのだから他の環境には一切の影響が無いのではありませんでしたか？自分の予想では仮想環境を起動している時だけpip listでpip-
reviewが表示されて、終了している時にはpip listを実行してもpip-reviewが表示されないと思っておりました。  
どうすればちゃんと仮想環境だけにインストールできるようになるのでしょうか？

次にそのコードを載せます。  
ただ、エラーメッセージは次の文を除いては他には何もありませんでした。  
エラーメッセージというよりは警告文でしょうか。

[code]

    WARNING: You are using pip version 20.1.1; however, version 20.2.2 is available.
    You should consider upgrading via the 'c:\users\User\appdata\local\programs\python\python38\python.exe -m pip install --upgrade pip' command.
    
[/code]

まず、インストールする前に起動時と終了時のそれぞれでpip listを実行した結果です。  
「作成したばかりなのだからたぶんデフォルトのモジュールだけ入っているのだろうな」と思っていたら違いました。以前にインストールしたものが起動後にも表示されました。  
activateとdeactivateを実行した直後にsetコマンドを打って仮想環境の起動及び終了ができていることは確認しました。起動している時だけは_OLD_VIRTUAL_PROMPTや_OLD_VIRTUAL_PATHなどを確認できますのでちゃんと起動していると思います。終了している時にはこれらは確認できません。

[code]

    >env\scripts\activate
    
    >pip list
    Package           Version
    ----------------- -------
    appdirs           1.4.3
    asgiref           3.2.5
    astroid           2.3.3
    beautifulsoup4    4.9.0
    colorama          0.4.3
    distlib           0.3.0
    Django            3.0.4
    django-bootstrap4 1.1.1
    filelock          3.0.12
    isort             4.3.21
    lazy-object-proxy 1.4.3
    mccabe            0.6.1
    Pillow            7.2.0
    pip               20.1.1
    pylint            2.4.4
    pytz              2019.3
    setuptools        41.2.0
    six               1.14.0
    soupsieve         2.0
    sqlparse          0.3.1
    virtualenv        20.0.7
    wrapt             1.11.2
    
    >env\scripts\deactivate
    
    >pip list
    Package           Version
    ----------------- -------
    appdirs           1.4.3
    asgiref           3.2.5
    astroid           2.3.3
    beautifulsoup4    4.9.0
    colorama          0.4.3
    distlib           0.3.0
    Django            3.0.4
    django-bootstrap4 1.1.1
    filelock          3.0.12
    isort             4.3.21
    lazy-object-proxy 1.4.3
    mccabe            0.6.1
    Pillow            7.2.0
    pip               20.1.1
    pylint            2.4.4
    pytz              2019.3
    setuptools        41.2.0
    six               1.14.0
    soupsieve         2.0
    sqlparse          0.3.1
    virtualenv        20.0.7
    wrapt             1.11.2
    
[/code]

続いて、起動している状態でpip-reviewをインストールした結果です。  
しかし、仮想環境だけにインストールされたわけではないようです。

[code]

    >pip install pip-review
    Collecting pip-review
      Downloading pip_review-1.1.0-py3-none-any.whl (7.2 kB)
    Collecting packaging
      Downloading packaging-20.4-py2.py3-none-any.whl (37 kB)
    Requirement already satisfied: pip in c:\users\User\appdata\local\programs\python\python38\lib\site-packages (from pip-review) (20.1.1)
    Collecting pyparsing>=2.0.2
      Downloading pyparsing-2.4.7-py2.py3-none-any.whl (67 kB)
         |████████████████████████████████| 67 kB 256 kB/s
    Requirement already satisfied: six in c:\users\User\appdata\local\programs\python\python38\lib\site-packages (from packaging->pip-review) (1.14.0)
    Installing collected packages: pyparsing, packaging, pip-review
    Successfully installed packaging-20.4 pip-review-1.1.0 pyparsing-2.4.7
    
    >pip list
    Package           Version
    ----------------- -------
    appdirs           1.4.3
    asgiref           3.2.5
    astroid           2.3.3
    beautifulsoup4    4.9.0
    colorama          0.4.3
    distlib           0.3.0
    Django            3.0.4
    django-bootstrap4 1.1.1
    filelock          3.0.12
    isort             4.3.21
    lazy-object-proxy 1.4.3
    mccabe            0.6.1
    packaging         20.4
    Pillow            7.2.0
    pip               20.1.1
    pip-review        1.1.0
    pylint            2.4.4
    pyparsing         2.4.7
    pytz              2019.3
    setuptools        41.2.0
    six               1.14.0
    soupsieve         2.0
    sqlparse          0.3.1
    virtualenv        20.0.7
    wrapt             1.11.2
    
    >env\scripts\deactivate
    
    >pip list
    Package           Version
    ----------------- -------
    appdirs           1.4.3
    asgiref           3.2.5
    astroid           2.3.3
    beautifulsoup4    4.9.0
    colorama          0.4.3
    distlib           0.3.0
    Django            3.0.4
    django-bootstrap4 1.1.1
    filelock          3.0.12
    isort             4.3.21
    lazy-object-proxy 1.4.3
    mccabe            0.6.1
    packaging         20.4
    Pillow            7.2.0
    pip               20.1.1
    pip-review        1.1.0
    pylint            2.4.4
    pyparsing         2.4.7
    pytz              2019.3
    setuptools        41.2.0
    six               1.14.0
    soupsieve         2.0
    sqlparse          0.3.1
    virtualenv        20.0.7
    wrapt             1.11.2
    
[/code]

pip uninstall pip-reviewを起動中に実行したら起動中及び終了後のpip listからアンインストールされたことが確認できました。

あと、関係はあまり無いかもしれませんが一応こちらも載せておきます。

[code]

    >env\scripts\activate
    
    >where pip-review
    C:\Users\User\AppData\Local\Programs\Python\Python38\Scripts\pip-review.exe
    
    >env\scripts\deactivate
    
    >where pip-review
    C:\Users\User\AppData\Local\Programs\Python\Python38\Scripts\pip-review.exe
    
[/code]

もし何か足りない情報がありましたら是非ともご指摘下さい。  
よろしくお願い致します。

以下は追記です。

＞コメントでは書式が貧弱だし分割されて正確では無いので質問記事の方に追記してください。それとactivateの前と後の両方でお願いします。

active後です。

[code]

    Path=C:\Users\user\Desktop\繝昴・繝医ヵ繧ｩ繝ｪ繧ｪ\Django縺ｮ繝昴・繝医ヵ繧ｩ繝ｪ繧ｪ\rensyuu_20200816start\eeenv\Scripts;
    C:\Program Files (x86)\Intel\iCLS Client\;
    C:\Program Files\Intel\iCLS Client\;
    C:\WINDOWS\system32;
    C:\WINDOWS;
    C:\WINDOWS\System32\Wbem;
    C:\WINDOWS\System32\WindowsPowerShell\v1.0\;
    C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;
    C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;
    C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;
    C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;
    C:\Program Files\Intel\WiFi\bin\;
    C:\Program Files\Common Files\Intel\WirelessCommon\;
    C:\WINDOWS\System32\OpenSSH\;
    C:\Program Files\Git\cmd;
    C:\Users\user\AppData\Local\Programs\Python\Python37\;
    C:\Users\user\AppData\Local\Programs\Python\Python37\Scripts\;
    C:\Program Files\nodejs\;C:\ProgramData\chocolatey\bin;
    C:\Program Files (x86)\Yarn\bin\;C:\HashiCorp\Vagrant\bin;
    C:\Users\user\AppData\Local\Programs\Python\Python38\Scripts\;
    C:\Users\user\AppData\Local\Programs\Python\Python38\;
    C:\Users\user\AppData\Local\Programs\Python\Python37\Scripts\;
    C:\Users\user\AppData\Local\Programs\Python\Python37\;
    C:\Ruby26-x64\bin;
    C:\Users\user\AppData\Local\Microsoft\WindowsApps;
    C:\Users\user\AppData\Local\atom\bin;
    C:\Users\user\AppData\Local\Programs\Microsoft VS Code\bin;
    C:\Users\user\AppData\Roaming\npm;
    C:\Users\user\AppData\Local\Yarn\bin
    
[/code]

active前です。しかし、new_eeenvを作成後のsetコマンド表示なので、それ以前とは何か変わったかもしれないです。

[code]

    Path=C:\Program Files (x86)\Intel\iCLS Client\;
    C:\Program Files\Intel\iCLS Client\;
    C:\WINDOWS\system32;
    C:\WINDOWS;
    C:\WINDOWS\System32\Wbem;
    C:\WINDOWS\System32\WindowsPowerShell\v1.0\;
    C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;
    C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;
    C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;
    C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;
    C:\Program Files\Intel\WiFi\bin\;
    C:\Program Files\Common Files\Intel\WirelessCommon\;
    C:\WINDOWS\System32\OpenSSH\;
    C:\Program Files\Git\cmd;
    C:\Users\user\AppData\Local\Programs\Python\Python37\;
    C:\Users\user\AppData\Local\Programs\Python\Python37\Scripts\;
    C:\Program Files\nodejs\;
    C:\ProgramData\chocolatey\bin;
    C:\Program Files (x86)\Yarn\bin\;
    C:\HashiCorp\Vagrant\bin;
    C:\Users\user\AppData\Local\Programs\Python\Python38\Scripts\;
    C:\Users\user\AppData\Local\Programs\Python\Python38\;
    C:\Users\user\AppData\Local\Programs\Python\Python37\Scripts\;
    C:\Users\user\AppData\Local\Programs\Python\Python37\;
    C:\Ruby26-x64\bin;
    C:\Users\user\AppData\Local\Microsoft\WindowsApps;
    C:\Users\user\AppData\Local\atom\bin;
    C:\Users\user\AppData\Local\Programs\Microsoft VS Code\bin;
    C:\Users\user\AppData\Roaming\npm;
    C:\Users\user\AppData\Local\Yarn\bin
    
[/code]

＞この時点で考えられる最初の原因は、virtualenvで作るフォルダの途中階層のフォルダ名にShiftJISらしき全角文字が使われていることです。

おかげ様で上手くいったようです。ありがとうございます。

パス名となるフォルダ名を書き換えました。ただ、フォルダ名を変更する  
より以前に作った仮想環境だと変更前のフォルダ名、パスのままであるようです。  
変更を適用してくれないようです。  
次のパスは改めて適切なフォルダ名に変更した後に再び仮想環境を起動し、  
setコマンドでPathを参照したものです。

[code]

    C:\Users\user\Desktop\繝昴・繝医ヵ繧ｩ繝ｪ繧ｪ\Django縺ｮ繝昴・繝医ヵ繧ｩ繝ｪ繧ｪ\rensyuu_sns20200816start\eeenv\Scripts
    
[/code]

ですので、既存のパスを書き換える方法もあるのかもしれませんが、  
新たに別の仮想環境を作って確認することにしました。

[code]

    C:\Users\user\Desktop\Portfolio\Django_portfolio\rensyuu_sns20200816start>new_eeenv\scripts\activate
    
[/code]

setコマンドで確認

[code]

    Path=C:\Users\user\Desktop\Portfolio\Django_portfolio\rensyuu_sns20200816start\new_eeenv\Scripts;
    
[/code]

[code]

    C:\Users\user\Desktop\Portfolio\Django_portfolio\rensyuu_sns20200816start>pip list
    Package    Version
    ---------- -------
    pip        20.0.2
    setuptools 45.2.0
    wheel      0.34.2
    
    C:\Users\user\Desktop\Portfolio\Django_portfolio\rensyuu_sns20200816start>pip install pip-review
    Collecting pip-review
      Using cached pip_review-1.1.0-py3-none-any.whl (7.2 kB)
    Collecting packaging
      Using cached packaging-20.4-py2.py3-none-any.whl (37 kB)
    Requirement already satisfied: pip in c:\users\user\desktop\portfolio\django_portfolio\rensyuu_sns20200816start\new_eeenv\lib\site-packages (from pip-review) (20.0.2)
    Collecting six
      Downloading six-1.15.0-py2.py3-none-any.whl (10 kB)
    Collecting pyparsing>=2.0.2
      Using cached pyparsing-2.4.7-py2.py3-none-any.whl (67 kB)
    Installing collected packages: six, pyparsing, packaging, pip-review
    Successfully installed packaging-20.4 pip-review-1.1.0 pyparsing-2.4.7 six-1.15.0
    WARNING: You are using pip version 20.0.2; however, version 20.2.2 is available.
    You should consider upgrading via the 'C:\Users\user\Desktop\Portfolio\Django_portfolio\rensyuu_sns20200816start\new_eeenv\Scripts\python.exe -m pip install --upgrade pip' command.
    
[/code]

ここには書いていませんがDjangoも新たにインストールしておりました。

[code]

    C:\Users\user\Desktop\Portfolio\Django_portfolio\rensyuu_sns20200816start>pip list
    Package    Version
    ---------- -------
    asgiref    3.2.10
    Django     3.1
    packaging  20.4
    pip        20.0.2
    pip-review 1.1.0
    pyparsing  2.4.7
    pytz       2020.1
    setuptools 45.2.0
    six        1.15.0
    sqlparse   0.3.1
    wheel      0.34.2
    
[/code]


CC BY-SA 4.0
2020-08-17T20:16:07.397
69638
2020-08-20T16:35:07.617
2020-08-20T16:35:07.617
38050
38050
question
python pip virtualenv
仮想環境にてpipでインストールしたモジュールなのに、仮想環境を終了させた後にもインストールされていることが確認できてしまっています。


この時点で考えられる最初の原因は、virtualenvで作るフォルダの途中階層のフォルダ名にShiftJISらしき全角文字が使われていることです。  
本当に全角文字が使われているのなら、それは破棄して全角文字を使わないフォルダ構成に作り直した方が良いでしょう。

[code]

    Path=C:\Users\user\Desktop\繝昴・繝医ヵ繧ｩ繝ｪ繧ｪ\Django縺ｮ繝昴・繝医ヵ繧ｩ繝ｪ繧ｪ\rensyuu_20200816start\eeenv\Scripts;
    
[/code]

* * *

もう一つはPythonを複数インストールしたかインストール/アンインストールを繰り返した残骸か、PATHに複数のPythonフォルダが記述されています。

[code]

    C:\Users\user\AppData\Local\Programs\Python\Python37\;
    C:\Users\user\AppData\Local\Programs\Python\Python37\Scripts\;
    C:\Program Files\nodejs\;
    C:\ProgramData\chocolatey\bin;
    C:\Program Files (x86)\Yarn\bin\;
    C:\HashiCorp\Vagrant\bin;
    C:\Users\user\AppData\Local\Programs\Python\Python38\Scripts\;
    C:\Users\user\AppData\Local\Programs\Python\Python38\;
    C:\Users\user\AppData\Local\Programs\Python\Python37\Scripts\;
    C:\Users\user\AppData\Local\Programs\Python\Python37\;
    
[/code]

残骸ならば、正しいフォルダを1つだけ残して他は削除しましょう。

複数インストールしている場合は、PATHにPythonのフォルダを登録するのではなく、Pythonランチャーを使うようにした方が良いでしょう。  
以下記事を参考に。  
[WindowsユーザーはPythonランチャーの存在を意識しましょう](https://gammasoft.jp/blog/find-out-
python-launcher/)  
[Pythonの複数バージョンの扱い方（Windowsの場合）](https://gammasoft.jp/python/python-version-
management/)


CC BY-SA 4.0
2020-08-19T00:06:34.520
69672
2020-08-19T00:06:34.520
26370
69638
answer