pip install django-heroku のpsycopg2で「Microsoft Visual C++ 14.0 is required」エラーになる場合

pip install django-heroku でハマったので、記録しておきます。

pip install django-heroku の実行時に、psycopg2で「Microsoft Visual C++ 14.0 is required」エラーが発生しました。

エラー内容

Using legacy 'setup.py install' for psycopg2, since package 'wheel' is not installed.
Installing collected packages: psycopg2
   Running setup.py install for psycopg2 ... error
   ERROR: Command errored out with exit status 1:
    command: 'c:\django01\myvenv\scripts\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\koji.LIFEBOOK\\AppData\\Local\\Temp\\pip-install-w3z7rdyd\\psycopg2\\setup.py'"'"'; __file__='"'"'C:\\Users\\koji.LIFEBOOK\\AppData\\Local\\Temp\\pip-install-w3z7rdyd\\psycopg2\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\koji.LIFEBOOK\AppData\Local\Temp\pip-record-ddo9debf\install-record.txt' --single-version-externally-managed --compile --install-headers 'c:\django01\myvenv\include\site\python3.9\psycopg2'
        cwd: C:\Users\koji.LIFEBOOK\AppData\Local\Temp\pip-install-w3z7rdyd\psycopg2\
   Complete output (22 lines):
   running install
   running build
   running build_py
   creating build
   creating build\lib.win-amd64-3.9
   creating build\lib.win-amd64-3.9\psycopg2
   copying lib\compat.py -> build\lib.win-amd64-3.9\psycopg2
   copying lib\errorcodes.py -> build\lib.win-amd64-3.9\psycopg2
   copying lib\errors.py -> build\lib.win-amd64-3.9\psycopg2
   copying lib\extensions.py -> build\lib.win-amd64-3.9\psycopg2
   copying lib\extras.py -> build\lib.win-amd64-3.9\psycopg2
   copying lib\pool.py -> build\lib.win-amd64-3.9\psycopg2
   copying lib\sql.py -> build\lib.win-amd64-3.9\psycopg2
   copying lib\tz.py -> build\lib.win-amd64-3.9\psycopg2
   copying lib\_ipaddress.py -> build\lib.win-amd64-3.9\psycopg2
   copying lib\_json.py -> build\lib.win-amd64-3.9\psycopg2
   copying lib\_lru_cache.py -> build\lib.win-amd64-3.9\psycopg2
   copying lib\_range.py -> build\lib.win-amd64-3.9\psycopg2
   copying lib\__init__.py -> build\lib.win-amd64-3.9\psycopg2
   running build_ext
   building 'psycopg2._psycopg' extension
   error: Microsoft Visual C++ 14.0 is required. Get it with "Build Tools for Visual Studio": https://visualstudio.microsoft.com/downloads/
   ----------------------------------------
ERROR: Command errored out with exit status 1: 'c:\django01\myvenv\scripts\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\koji.LIFEBOOK\\AppData\\Local\\Temp\\pip-install-w3z7rdyd\\psycopg2\\setup.py'"'"'; __file__='"'"'C:\\Users\\koji.LIFEBOOK\\AppData\\Local\\Temp\\pip-install-w3z7rdyd\\psycopg2\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\koji.LIFEBOOK\AppData\Local\Temp\pip-record-ddo9debf\install-record.txt' --single-version-externally-managed --compile --install-headers 'c:\django01\myvenv\include\site\python3.9\psycopg2' Check the logs for full command output.

解決策

https://visualstudio.microsoft.com/ja/downloads/ より、Build Tools for Visual Studio をダウンロードし、インストールウィザードで、「C++Build Tools」にチェックしてインストールする。

対処後

(myvenv) PS C:\django01> pip install django-heroku
Requirement already satisfied: django-heroku in c:\django01\myvenv\lib\site-packages (0.3.1)
Requirement already satisfied: dj-database-url>=0.5.0 in c:\django01\myvenv\lib\site-packages (from django-heroku) (0.5.0)
Requirement already satisfied: django in c:\django01\myvenv\lib\site-packages (from django-heroku) (3.1.2)
Collecting psycopg2
 Using cached psycopg2-2.8.6.tar.gz (383 kB)
Requirement already satisfied: whitenoise in c:\django01\myvenv\lib\site-packages (from django-heroku) (5.2.0)
Requirement already satisfied: asgiref~=3.2.10 in c:\django01\myvenv\lib\site-packages (from django->django-heroku) (3.2.10)
Requirement already satisfied: pytz in c:\django01\myvenv\lib\site-packages (from django->django-heroku) (2020.1)
Requirement already satisfied: sqlparse>=0.2.2 in c:\django01\myvenv\lib\site-packages (from django->django-heroku) (0.4.1)
Using legacy 'setup.py install' for psycopg2, since package 'wheel' is not installed.
Installing collected packages: psycopg2
   Running setup.py install for psycopg2 ... done
Successfully installed psycopg2-2.8.6