Python3.9 Django Docker Postgres

问题描述

我正在尝试将Docker映像从 python:3.8.2-alpine3.10 切换到 python:3.9.0-alpine3.12 ,但是我运行django命令 SSL_check_private_key:未找到符号时,出现问题。

运行检查时出现以下错误

bash -c“触摸/var/donor_reporting_portal/.touch && django-admin检查--deploy” /usr/local/lib/python3.9/site-packages/environ/environ.py:628:用户警告:/usr/local/lib/python3.9/site-packages/donor_reporting_portal/config/.env不存在-如果您不单独配置环境,请创建一个。 追溯(最近一次通话): 文件“ / usr / local / bin / django-admin”,第8行,在 sys.exit(execute_from_command_line()) 在execute_from_command_line的第401行中,文件“ /usr/local/lib/python3.9/site-packages/django/core/management/init.py” 在执行中的文件“ /usr/local/lib/python3.9/site-packages/django/core/management/init.py”,行377 安装程序中的文件“ /usr/local/lib/python3.9/site-packages/django/init.py”,第24行 文件“ /usr/local/lib/python3.9/site-packages/django/apps/registry.py”,第91行 在create中,文件“ /usr/local/lib/python3.9/site-packages/django/apps/config.py”,第116行 在import_module中的文件“ /usr/local/lib/python3.9/importlib/init.py”,第127行 _gcd_import中的文件“”,第1030行 _find_and_load中的文件“”,第1007行 _find_and_load_unlocked中的文件“”,行986 _load_unlocked中的文件“”,行680 exec_module中的文件“”,行790 _call_with_frames_removed中的文件“”,第228行 文件“ /usr/local/lib/python3.9/site-packages/django/contrib/postgres/apps.py”,第1行,在 在第51行的“ /usr/local/lib/python3.9/site-packages/psycopg2/init.py”文件中 ImportError:重定位/usr/local/lib/python3.9/site-packages/psycopg2/_psycopg.cpython-39-x86_64-linux-gnu.so时出错:SSL_check_private_key:未找到符号 make [2]:*** [.run]错误1 make [1]:*** [测试]错误2 make:*** [build]错误2

在我的计算机上运行它时没有任何问题。

解决方法

Postgres功能依赖于不可移植的二进制文件,通常必须在目标系统和Python版本上进行编译。 Psycopg2是针对每个Python版本构建和发布的,但尚未发布3.9版本的psycopg2。

所以,Psycopg2 on Python 3.9 is not yet supported到今天为止。