Pycharm 在 docker 托管应用程序上运行“使用 cython 的调试器加速”

Posted

技术标签:

【中文标题】Pycharm 在 docker 托管应用程序上运行“使用 cython 的调试器加速”【英文标题】:Pycharm run "Debugger speedups using cython" on docker hosted app 【发布时间】:2017-04-10 02:43:00 【问题描述】:

我有一个奇怪的问题,我似乎无法深入了解。 我的 django 项目是使用 docker-compose 设置的

version: '2'
services:
    db:
        image: postgres:9.6.0
        environment:
            POSTGRES_PASSWORD: docker
            POSTGRES_USER: docker
        ports:
            - "8001:5432"
    djweb:
        build: .
        command: python dj/manage.py runserver 0.0.0.0:8000
        volumes:
            - .:/code
        ports:
            - "8000:8000"
        depends_on:
            - db

而 dockerfile 是

 FROM python:3.5.2
 ENV PYTHONUNBUFFERED 1
 RUN mkdir /code
 WORKDIR /code
 ADD requirements.txt /code/
 RUN pip install -r requirements.txt
 ADD . /code/

在 Pycharm 中,我启动了一个使用 docker compose 配置的新 Django 项目,它创建得很好。当我尝试调试它时,我得到了通常的结果:

警告:未找到使用 cython 的调试器加速。跑步 '"/usr/local/bin/python" "/opt/.pycharm_helpers/pydev/setup_cython.py" build_ext --inplace' 来构建。 pydev 调试器:进程 1 正在连接

现在问题来了。由于一个奇怪的只读错误,我似乎无法运行 Pycharm 在我的“djweb”容器上建议的 setup_cython 命令。如果有人能指出我正确的方向,我将不胜感激(我可能需要为我的容器添加一些体积或??? - 显然 pycharm 还添加了其他图像/容器在我的旁边)

root@b8bf92996472:/# "/usr/local/bin/python" "/opt/.pycharm_helpers/pydev/setup_cython.py" build_ext --inplace 运行 build_ext 构建 '_pydevd_bundle.pydevd_cython' 扩展 创建构建 错误:无法创建“构建”:只读文件系统

【问题讨论】:

【参考方案1】:

我遇到了同样的问题,并且能够以这种方式使用命令解决它:

docker run -t -i --volumes-from pycharm_helpers_PY-163.10154.50 IMAGE_NAME \
/usr/bin/python /opt/.pycharm_helpers/pydev/setup_cython.py build_ext --inplace

你可能需要用你自己的实例替换163.10154.50 - 我在 PyCharm 中找到了我的 ->View->Tool Windows->Docker,在弹出的视图中,在Docker- >Containers

IMAGE_NAME 可以通过docker ps找到

注意 - 在我的配置中,我使用 docker-machine,需要先从终端运行 eval $(docker-machine env)

【讨论】:

以上是关于Pycharm 在 docker 托管应用程序上运行“使用 cython 的调试器加速”的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Pycharm 中使用 Docker 虚拟环境解决工作目录/导入根的问题

PyCharm 使用Github托管Django项目

Docker 使用啥来托管/运行 Web 应用程序?

Spring Boot Docker Container 无法连接到托管在 Docker 主机上的 postgresql

如何在托管的 Ubuntu 代理上启用 Azure Pipelines 中的实验性 Docker 守护程序

Pycharm调试docker compose中的manage.py命令