繁体   English   中英

Docker:pip 安装-e。 有效,但 pip install -r requirements.txt 不起作用

[英]Docker: pip install -e . works but pip install -r requirements.txt does not work

我有一个 flask python 3.7 应用程序,我想在 docker 和 Z301363985F01818717A7421 上运行

我有以下 Docker 文件

这个有效(使用 python 鸡蛋)

FROM python:3-stretch
WORKDIR /app
ADD . /app/
RUN pip install -e . 
EXPOSE 5000
CMD ["python", "myapp/application.py"]

但这不是(但我想坚持这一点)

FROM python:3-stretch
WORKDIR /app
ADD . /app/
RUN pip -r requirements.txt
EXPOSE 5000
CMD ["python", "myapp/application.py"]

运行此命令(在构建容器之后) docker run -it -p 5000:5000 myapp-python:latest给出以下错误

Traceback (most recent call last):
  File "myapp/application.py", line 3, in <module>
    import myapp.config as config
ModuleNotFoundError: No module named 'myapp'

但如上所述,这与之前的 Docker 文件完美配合。 任何帮助深表感谢。

补充说明:

  • 构建 Docker 容器时没有错误

这是我的要求.txt

flask
requests
flask-restful
flask-migrate
flask-sqlalchemy
flask-marshmallow
flask-jwt-extended
marshmallow-sqlalchemy
python-dotenv
passlib
tox
neomodel==3.2.9
marshmallow>=3.0.0b11
apispec
phonenumbers
pillow
emailage>=1.1.2
emailage-official==1.0.2
boto3
geopy
fuzzywuzzy
py2neo>=4.1.0
python-dotenv
eth_utils
neo4j>=1.7.0
neotime>=1.7.1
python-jose
eth-utils
eth-hash[pycryptodome]
python-Levenshtein
jsonpatch
google-cloud-vision
google-cloud-translate
pycountry
sspyjose>=0.2.5
pysinglesource>=0.1.0
flask-cors
pynamodb

我找到了解决方案。

  1. 我分别构建了两个容器
  2. 然后在每个容器内运行以下命令。
root@64118c352a3e:/app# python
[GCC 6.3.0 20170516] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print(sys.path)
['', '/app', '/usr/local/lib/python37.zip', '/usr/local/lib/python3.7', '/usr/local/lib/python3.7/lib-dynload', '/usr/local/lib/python3.7/site-packages']

然后在我的第二个配置中发现我缺少第二个容器中的'/app'路径。

然后我使用添加了路径

ENV PYTHONPATH "${PYTONPATH}:/app"

完整的 Dockerfile 如下所示。

FROM python:3-stretch
WORKDIR /app
ADD . /app/
RUN pip install -r requirements.txt
ENV PYTHONPATH "${PYTONPATH}:/app"
EXPOSE 5000
CMD ["python", "myapp/application.py"]

现在它起作用了。

希望这会对某人有所帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM