在高山docker集装箱中安装psycopg2

我试图让我的Django应用程序使用PostgreSQL,但是,迄今没有运气。 我将应用程序设置为使用PostgreSQL数据库,并使用docker-compose.yml链接了两个容器,但是我收到了模块psycopg2丢失的错误。 我安装了所有的依赖关系如下: apk --update add python3-dev, postgresql-client, postgresql-dev, musl-dev当我尝试安装psycopg2使用pip pip3 install psycopg2我得到以下错误:

 Collecting psycopg2 Downloading psycopg2-2.6.2.tar.gz (376kB) Installing collected packages: psycopg2 Running setup.py install for psycopg2 building 'psycopg2._psycopg' extension gcc -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -Os -fomit-frame-pointer -fPIC -DPSYCOPG_DEFAULT_PYDATETIME=1 -DPSYCOPG_VERSION="2.6.2 (dt dec pq3 ext lo64)" -DPG_VERSION_HEX=0x090409 -DHAVE_LO64=1 -I/usr/include/python3.4m -I. -I/usr/include -I/usr/include/postgresql/server -c psycopg/psycopgmodule.c -o build/temp.linux-x86_64-3.4/psycopg/psycopgmodule.o -Wdeclaration-after-statement error: command 'gcc' failed with exit status 1 Complete output from command /usr/bin/python3.4 -c "import setuptools, tokenize;__file__='/tmp/pip-build-6wmwilb_/psycopg2/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-f8ye_ro8-record/install-record.txt --single-version-externally-managed --compile: running install running build running build_py creating build creating build/lib.linux-x86_64-3.4 creating build/lib.linux-x86_64-3.4/psycopg2 copying lib/_json.py -> build/lib.linux-x86_64-3.4/psycopg2 copying lib/psycopg1.py -> build/lib.linux-x86_64-3.4/psycopg2 copying lib/pool.py -> build/lib.linux-x86_64-3.4/psycopg2 copying lib/__init__.py -> build/lib.linux-x86_64-3.4/psycopg2 copying lib/extensions.py -> build/lib.linux-x86_64-3.4/psycopg2 copying lib/errorcodes.py -> build/lib.linux-x86_64-3.4/psycopg2 copying lib/extras.py -> build/lib.linux-x86_64-3.4/psycopg2 copying lib/tz.py -> build/lib.linux-x86_64-3.4/psycopg2 copying lib/_range.py -> build/lib.linux-x86_64-3.4/psycopg2 creating build/lib.linux-x86_64-3.4/psycopg2/tests copying tests/test_notify.py -> build/lib.linux-x86_64-3.4/psycopg2/tests copying tests/test_lobject.py -> build/lib.linux-x86_64-3.4/psycopg2/tests copying tests/test_errcodes.py -> build/lib.linux-x86_64-3.4/psycopg2/tests copying tests/dbapi20.py -> build/lib.linux-x86_64-3.4/psycopg2/tests copying tests/dbapi20_tpc.py -> build/lib.linux-x86_64-3.4/psycopg2/tests copying tests/test_types_basic.py -> build/lib.linux-x86_64-3.4/psycopg2/tests copying tests/test_dates.py -> build/lib.linux-x86_64-3.4/psycopg2/tests copying tests/test_bugX000.py -> build/lib.linux-x86_64-3.4/psycopg2/tests copying tests/test_copy.py -> build/lib.linux-x86_64-3.4/psycopg2/tests copying tests/test_module.py -> build/lib.linux-x86_64-3.4/psycopg2/tests copying tests/test_async.py -> build/lib.linux-x86_64-3.4/psycopg2/tests copying tests/testutils.py -> build/lib.linux-x86_64-3.4/psycopg2/tests copying tests/__init__.py -> build/lib.linux-x86_64-3.4/psycopg2/tests copying tests/test_cancel.py -> build/lib.linux-x86_64-3.4/psycopg2/tests copying tests/test_quote.py -> build/lib.linux-x86_64-3.4/psycopg2/tests copying tests/test_psycopg2_dbapi20.py -> build/lib.linux-x86_64-3.4/psycopg2/tests copying tests/test_with.py -> build/lib.linux-x86_64-3.4/psycopg2/tests copying tests/testconfig.py -> build/lib.linux-x86_64-3.4/psycopg2/tests copying tests/test_transaction.py -> build/lib.linux-x86_64-3.4/psycopg2/tests copying tests/test_green.py -> build/lib.linux-x86_64-3.4/psycopg2/tests copying tests/test_types_extras.py -> build/lib.linux-x86_64-3.4/psycopg2/tests copying tests/test_cursor.py -> build/lib.linux-x86_64-3.4/psycopg2/tests copying tests/test_connection.py -> build/lib.linux-x86_64-3.4/psycopg2/tests copying tests/test_bug_gc.py -> build/lib.linux-x86_64-3.4/psycopg2/tests copying tests/test_extras_dictcursor.py -> build/lib.linux-x86_64-3.4/psycopg2/tests Skipping implicit fixer: buffer Skipping implicit fixer: idioms Skipping implicit fixer: set_literal Skipping implicit fixer: ws_comma running build_ext building 'psycopg2._psycopg' extension creating build/temp.linux-x86_64-3.4 creating build/temp.linux-x86_64-3.4/psycopg gcc -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -Os -fomit-frame-pointer -fPIC -DPSYCOPG_DEFAULT_PYDATETIME=1 -DPSYCOPG_VERSION="2.6.2 (dt dec pq3 ext lo64)" -DPG_VERSION_HEX=0x090409 -DHAVE_LO64=1 -I/usr/include/python3.4m -I. -I/usr/include -I/usr/include/postgresql/server -c psycopg/psycopgmodule.c -o build/temp.linux-x86_64-3.4/psycopg/psycopgmodule.o -Wdeclaration-after-statement error: command 'gcc' failed with exit status 1 ---------------------------------------- Command "/usr/bin/python3.4 -c "import setuptools, tokenize;__file__='/tmp/pip-build-6wmwilb_/psycopg2/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-f8ye_ro8-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-6wmwilb_/psycopg2 

我错过了一个依赖关系还是我安装psycopg2错了?

把它添加到你的django应用程序的Dockerfile中

 RUN apk add build-base 

这就像构build要领,包括编译C / C ++程序的基本构build工具