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

Ale*_*ian 7 pycharm python-3.x docker

我有一个奇怪的问题,我似乎无法深究.我的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
Run Code Online (Sandbox Code Playgroud)

和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/
Run Code Online (Sandbox Code Playgroud)

在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
running build_ext building'_pydevd_bundle.pydevd_cython'扩展名创建构建错误:无法创建' build':只读文件系统

小智 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
Run Code Online (Sandbox Code Playgroud)

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

可以找到IMAGE_NAME docker ps

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