在Docker容器中通过pip安装mysql-连接器-python时,我面临一些问题。
我尝试了那么多,然后在谷歌搜索了几乎一整天的帮助:哦,五月,堆叠溢出社区现在可以帮我了。
我的文件
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

在图像中,您可以看到我的不同文件的位置。现在,当我尝试用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 所以我的问题是,我看到软件包显然没有安装。但我不知道为什么?!
希望你能帮我个忙。在此之前,非常感谢您。
发布于 2019-10-12 00:39:38
我认为您需要发布您的__init__并运行代码。我设置了与您相同的对接器,并使用-it运行它,并且能够导入mysql.connector而不存在任何问题。注意到我们的点子列表有不同之处。
Dockerfile:
FROM python:3
WORKDIR /usr/src/app
COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD [ "/bin/bash" ]Req.txt:
Flask==1.1.1
markdown==3.1.1
mysql-connector-python==8.0.17巴什输出:
zhiyong@----:~/projects/stack_overflow$ docker run -it stackoverflow
root@fd9bad5fc107:/usr/src/app# ls
Dockerfile requirements.txt run.py
root@fd9bad5fc107:/usr/src/app# python
Python 3.7.4 (default, Sep 12 2019, 15:40:15)
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import mysql.connector
root@fd9bad5fc107:/usr/src/app# 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
mysql-connector-python 8.0.17
pip 19.2.3
protobuf 3.10.0
setuptools 41.2.0
six 1.12.0
Werkzeug 0.16.0
wheel 0.33.6 https://stackoverflow.com/questions/58349768
复制相似问题