我正在尝试从包含车轮档案的本地包目录安装一些 python 要求。我正在 Docker 容器中安装要求。
我正在遵循的步骤是:
$ pip install wheel
# wheel runs, outputs .whl files to wheelhouse directory
$ pip wheel --wheel-dir wheelhouse -r requirements.txt
然后,在我的内部Dockerfile
:
ADD requirements.txt /tmp/requirements.txt
ADD wheelhouse /tmp/wheelhouse
# install requirements. Leave file in /tmp for now - may be useful.
RUN pip install --use-wheel --no-index --find-link /tmp/wheelhouse/ -r /tmp/requirements.txt
这可行 - 并且所有要求都已正确安装:
# 'app' is the name of my built docker image
$ docker run app pip list
...
psycopg2 (2.5.1)
...
但是,如果我真的尝试在使用 的容器内运行某些东西psycopg2
,那么我会得到以下信息:
Error loading psycopg2 module: /usr/local/lib/python2.7/site-packages/psycopg2/_psycopg.so: undefined symbol: PyUnicodeUCS4_AsUTF8String
我认为这与轮子的制造方式有关 - 我pip wheel
在容器主机(Ubuntu 12.04)上运行。
我该如何解决这个问题 - 使用轮子显着减少了构建容器映像所需的时间,所以如果我能提供帮助,我不想恢复安装包?