无法在Docker容器中安装'mysql-connector-python'

时间:2019-10-12 00:12:00

标签: python docker pip mysql-connector-python

在Docker容器中通过pip安装mysql-connector-python时遇到一些问题。

我尝试了这么一番尝试,并在Google中搜索了整整一天的时间:O 也许stackoverflow社区现在可以帮助我

我的Dockerfile

FROM python:3

WORKDIR /usr/src/app

COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

CMD [ "python", "./run.py" ]

requirements.txt:

Flask==1.1.1
markdown==3.1.1
mysql-connector-python==8.0.17

project structure

在图像中,您可以看到我的不同文件的位置。现在,我立即尝试使用import mysql.connector init .py中导入mysql程序包时,出现以下错误:

[...]/__init__.py", line 4, in <module>
import mysql.connector
ModuleNotFoundError: No module named 'mysql'

编辑:我的 init .py:

import markdown
import os
import mysql.connector

from flask import Flask
from flask import request, jsonify

#Create an instance of Flask
app = Flask(__name__)


@app.route("/")

def index():
    """Present some API documentation"""

    # Open the README file
    with open(os.path.dirname(app.root_path) + '/README.md', 'r') as markdown_file:

        #Read content
        content = markdown_file.read()

        #Convert to HTML
        return markdown.markdown(content)

@app.route("/healthinsurances", methods=['GET','POST'])
def healthinsurances():
    if (request.method == 'GET'):
        cnx = connection.MySQLConnection(user='usr', password='pwd', host='host', database='db')
        cnx.close()
        return jsonify({'some': 'json'})
    else:
        some_json = request.get_json()
        return jsonify({'you sent': some_json}), 201

我进一步列出了容器中列出的pip安装:

$ docker exec 7d5267a06dcc8c0f1d3a421c79f20c559fddf8ed65ada329e6f71ce69ddb0567 pip list
Package      Version
------------ -------
Click        7.0    
Flask        1.1.1  
itsdangerous 1.1.0  
Jinja2       2.10.3 
Markdown     3.1.1  
MarkupSafe   1.1.1  
pip          19.2.3 
setuptools   41.2.0 
Werkzeug     0.16.0 
wheel        0.33.6 

所以我的问题是,我发现该软件包显然未安装。但是我不知道为什么吗?!

请你帮我一下。预先非常感谢。

1 个答案:

答案 0 :(得分:0)

我认为您需要发布__init__并运行代码。我设置了与您相同的docker,并使用atomic_ref运行了它,并且能够导入mysql.connector而没有任何问题。注意,虽然我们的点子列表有所不同。

Dockerfile:

alignof(T) == sizeof(T)

req.txt:

-it

重击输出:

FROM python:3

WORKDIR /usr/src/app

COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

CMD [ "/bin/bash" ]