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

时间:2016-11-25 16:40:24

标签: python-3.x docker pycharm

我有一个奇怪的问题,我似乎无法深究。 我的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 个答案:

答案 0 :(得分:8)

我遇到了同样的问题,并且能够通过这种方式解决它:

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下弹出的视图。

可以使用docker ps

找到IMAGE_NAME

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