当前位置: 首页 > 知识库问答 >
问题:

Docker:pip安装-e。工作,但pip安装-r requirements.txt不工作

澹台志诚
2023-03-14

我有一个烧瓶Python 3.7应用程序,我想运行在docker和库伯内特斯。

我有以下Docker文件

这个管用(用蟒蛇蛋)

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:最新的给出以下错误

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容器时没有错误

这是我的requirements.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个答案

云何平
2023-03-14

我找到了解决办法。

  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"]

现在它起作用了。

希望这能帮到某人

 类似资料:
  • 在尝试了我可以找到的关于这个问题的帖子中提到的所有内容后,我还没有安装psycopg2 警告:MANIFEST_MAKER:找不到标准文件“-C”

  • 我是django、docker和scrapy的新手,我正在尝试运行一个也使用scrapy的django应用程序(我基本上创建了一个django应用程序,它也是一个scrapy应用程序,并尝试从django视图调用蜘蛛)。尽管在需求中指定了这个。txt和从Dockerfile运行pip,在运行和django应用程序在系统检查期间失败,导致web容器退出,原因是以下异常: 我尝试使用而不是pip,,更

  • 我遇到了一个独特的版本,它是在这里和这里的答案中讨论的、有着良好记录的Virtualenv-Pip错误。在这些情况下,问题在于pip安装在全局文件夹中,在某些情况下是因为其中一个pip脚本中的shebang错误,在另一些情况下是因为脚本中的第42行错误,但它始终是全局安装的。 我的问题是不同的:在我的虚拟环境

  • 我正在执行< code > pip install setup tools-upgrade ,但出现以下错误 我错过了什么?我也尝试了sudo pip安装,但没有帮助。

  • 我已经上网几天了,但是我还没有找到解决问题的办法。所以我在这里,问我的第一个stackoverflow问题:我需要将imagick安装到我的UwAmp本地服务器上。我当前的imagemagick版本:imagemagick-6.8.9-1-vc9-x86我有Windows 7 x64,但imagemagick的x64版本都没有让我的本地服务器运行imagick。在命令行中,ImageMagick工

  • 我已经安装了一个MongoDB驱动程序,但事情显然是错误的,因为它不工作。这就是我所做的: pecl/mongodb已经安装,与发布的版本1.1相同。七, 返回已安装MongoDB 另外,var_dump(扩展_加载('mongodb');返回为true。 当我执行“php composer.phar update”时,我得到以下消息: root@debian:/var/www/html#phpc