我已经设置了一个PythonFlask
项目,指向运行在Docker
中的解释器
:
从PyCharm IDE
启动Flask
应用程序将产生以下输出:
51be5e336622:python3 -u /opt/project/app.py
Starting server
* Serving Flask app "app" (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: on
* Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
* Restarting with stat
Starting server
* Debugger is active!
* Debugger PIN: 328-461-278
试图打开http://localhost:5000/ 导致页面未找到错误。
如果我使用Docker与Dockerfile运行应用程序:
FROM python:3.8-slim-buster
WORKDIR /app
COPY requirements.txt requirements.txt
RUN pip3 install -r requirements.txt
COPY . .
EXPOSE 5000
#CMD [ "python3", "-m" , "flask", "run", "--host=0.0.0.0"]
CMD [ "python3", "-u" , "/app/app.py"]
上述Dockerfile构建PyCharm连接的容器,并在PyCharm中配置为:
使用命令Docker run-p 5000:5000 services运行
Docker
容器,应用程序在上启动http://localhost:5000/ 成功地
我是否需要将端口5000从PyCharm IDE映射到在端口5000上运行的Docker容器?如何实现这一点,PyIDE中似乎没有一个选项?
在https://blog.jetbrains.com/pycharm/2017/03/docker-compose-getting-flask-up-and-running/的帮助下,这正在发挥作用。
Dockerfile:
FROM python:3.8-slim-buster
WORKDIR /app
COPY requirements.txt requirements.txt
RUN pip3 install -r requirements.txt
COPY . .
EXPOSE 5000
CMD [ "python3", "-m" , "flask", "run", "--host=0.0.0.0"]
app.py主要方法:
if __name__ == '__main__':
for handler in logging.root.handlers[:]:
logging.root.removeHandler(handler)
logging.basicConfig(level=logging.INFO,
filename='./logs/' + str(
int(round(time.time() * 1000))) +'trade.log',
filemode="a+",
format="%(asctime)-15s %(levelname)-8s %(message)s",
datefmt='%Y-%m-%d %H:%M:%S')
logging.getLogger().addHandler(logging.StreamHandler(sys.stdout))
print('Starting server')
app.run(host="0.0.0.0", port=5000, debug=True)
docker-compose.yml,注意端口5000的使用:
version: '2'
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/app
开始docker撰写:
docker-compose up
更新PyCharm以使用docker comment实例:
app.py中执行main的输出:
Attaching to ml-services_web_1
web_1 | Starting server
web_1 | * Serving Flask app "app" (lazy loading)
web_1 | * Environment: production
web_1 | WARNING: This is a development server. Do not use it in a production deployment.
web_1 | Use a production WSGI server instead.
web_1 | * Debug mode: on
web_1 | * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
web_1 | * Restarting with stat
web_1 | Starting server
web_1 | * Debugger is active!
web_1 | * Debugger PIN: 828-722-345
web_1 | 172.20.0.1 - - [06/Apr/2021 13:36:32] "GET / HTTP/1.1" 200 -
http://localhost:5000/ 现在可以访问。
当我们编写Python代码时,我们得到的是一个包含Python代码的以.py为扩展名的文本文件。要运行代码,就需要Python解释器去执行.py文件。 由于整个Python语言从规范到解释器都是开源的,所以理论上,只要水平够高,任何人都可以编写Python解释器来执行Python代码(当然难度很大)。事实上,确实存在多种Python解释器。 CPython 当我们从Python官方网站下载并安装好
当我们编写Python代码时,我们得到的是一个包含Python代码的以.py为扩展名的文本文件。要运行代码,就需要Python解释器去执行.py文件。 由于整个Python语言从规范到解释器都是开源的,所以理论上,只要水平够高,任何人都可以编写Python解释器来执行Python代码(当然难度很大)。事实上,确实存在多种Python解释器。 CPython 当我们从Python官方网站下载并安装好
本文向大家介绍MAC中PyCharm设置python3解释器,包括了MAC中PyCharm设置python3解释器的使用技巧和注意事项,需要的朋友参考一下 MAC上的PyCharm中默认的python解释器是python2的,windows下的没用过不是很清楚,所以特来记录下设置python3解释器的过程。 python3的查找与安装 如果电脑中没有安装python3可以用brewhome来安装,
2. Python 解释器 2.1 调用解释器 在可用的机器上,Python解释器通常安装成/usr/local/bin/python;请将/usr/local/bin放在您的Unix shell搜索路径,以使得可以通过在shell中键入命令 python 来启动它。由于解释器放置的目录是一个安装选项,其它地方也是可能的;请与您本地的Python专家或系统管理员联系。(例如,/usr/local
我目前正在Xubuntu Linux 3.19上进行一个开源Python项目。0-51-使用Pycharm的通用x86_64。尽管我的项目需要Python3.4或更高版本,但IDE似乎强制项目使用Python2.7。我试图从项目解释器菜单中更改解释器(参见屏幕截图),甚至从项目解释器菜单中删除了Python 2.7条目。。都没有用。我附上了项目解释器菜单的屏幕截图,下面是我的调试器会话的第一行,以
Python的状态(版本 3 和版本 2) 选择 Python 解释器时,总会出现一个令人窘迫的问题:“我应该选择Python 2 还是 Python 3”? 答案比人们想象的要复杂的多。 大致的基本情况如下: 今天大多数生产应用程序都在使用 Python 2.7。 Python 3 已经可以在今天的应用程序上生产部署。 Python 2.7 只会在 2020 年之前获得必要的安全更新[[6]](