Skip to main content
 首页 » 编程设计

python之在 Ubuntu docker 容器上安装 Python mysqlclient

2024年10月17日27duanxz

我要安装Python's mysqlclient运行 Ubuntu 的 Docker 容器上的包.安装失败,因为我没有在容器中安装gcc:

x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Dversion_info=(1,3,7,'final',1) -D__version__=1.3.7 -I/usr/include/mysql -I/usr/include/python2.7 -c _mysql.c -o build/temp.linux-x86_64-2.7/_mysql.o -fabi-version=2 -fno-omit-frame-pointer 
    unable to execute 'x86_64-linux-gnu-gcc': No such file or directory 
    error: command 'x86_64-linux-gnu-gcc' failed with exit status 1 

但是,我不想在容器中安装gcc。 mysqlclient 有可用的轮子吗?我找不到。

请您参考如下方法:

您可以安装构建依赖项,创建模块,然后删除它们。

Redis is a good example了解如何一步构建和清理,这样您就不会创建庞大的图像层。

RUN buildDeps='gcc libc6-dev make' \ 
    && set -x \ 
    && apt-get update && apt-get install -y $buildDeps --no-install-recommends \ 
    && rm -rf /var/lib/apt/lists/* \ 
    && mkdir -p /usr/src/redis \ 
    && curl -sSL "$REDIS_DOWNLOAD_URL" -o redis.tar.gz \ 
    && echo "$REDIS_DOWNLOAD_SHA1 *redis.tar.gz" | sha1sum -c - \ 
    && tar -xzf redis.tar.gz -C /usr/src/redis --strip-components=1 \ 
    && rm redis.tar.gz \ 
    && make -C /usr/src/redis \ 
    && make -C /usr/src/redis install \ 
    && rm -r /usr/src/redis \ 
    && apt-get purge -y --auto-remove $buildDeps