我能够从保存Dockerfile的路径构建一个Docker映像,其中包含PyCharm的安装说明。构建图像时,我可以查看创建的图像列表。然后我键入docker run ti -pycharm,这是我在终端中构建的映像的名称,并且我的容器正在运行。现在我被困在如何从该容器中加载Pycharm?谢谢
答案 0 :(得分:1)
好的,我现在了解您的问题。您需要能够运行您的主机不具有依赖项的python脚本。
顺便说一句,管理Python依赖项的常用方法是使用virtualenv和virtualenvwrapper。如果您不熟悉它,并且想要一种简单的方法来管理python依赖项,则应该阅读有关它的更多信息,因为这可能是最好的解决方案。
使用Docker作为管理python依赖项的方法也可以很好地工作,并且这是一种相对较新的实践,可能会变得越来越普遍。在这种情况下,您不想从Docker容器内部运行PyCharm 。相反,您应该在主机上的PyCharm中进行开发,并仅使用容器来运行python脚本。
最好的例子可能是一个例子。为简单起见,创建一个新文件夹,cd到该文件夹,并创建一个简单的python脚本(hello.py
):
#!/usr/bin/env python
print("Hello, world!")
现在,我们可以运行以下Docker命令:
$ docker run -it --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp python:3 python hello.py
该命令会将当前目录作为/ usr / src / myapp挂载到容器中。当您对项目执行此操作时,该目录应该是您的项目目录。该命令将容器中的工作目录设置为/ usr / src / myapp,以便我们可以使用相对路径。只需将命令末尾的hello.py
更改为要运行的脚本的相对路径即可。
由于您的项目文件夹已作为卷装入容器中,因此您可以在主机上的PyCharm中编辑代码并在容器中运行脚本。此示例使用了默认的python 3容器,但是将上面命令中的映像名称替换为您要使用的映像名称很简单,该映像已经安装了所需的依赖项。
答案 1 :(得分:0)
在docker内部或外部运行IDE时存在多个问题。
当在docker内部使用python解释器在主机上运行PyCharm时,共享代码库可以由
处理PyCharm的远程解释器功能
代码驻留在主机上,这是PyCharm提供静态分析所必需的。 https://www.jetbrains.com/help/pycharm/code-inspection.html
无论何时要运行代码,都需要与远程系统同步。我不确定同步的行为方式,所以我不知道同步是双向的,还是主机上的PyCharm是否总是覆盖远程系统(docker容器)https://www.jetbrains.com/help/pycharm/configuring-synchronization-with-a-remote-host.html
在docker容器内安装主机目录:
./manage.py runserver
在开发中运行Django,则需要轮询代码库中的所有文件以查看是否有任何更改。我尚未测试Django的轮询。如果无法快速运行,则可能必须重新启动Django,以使其反映您的更改。
https://william-yeh.net/post/2019/06/inotify-in-containers/ 当前,我正在尝试在linux容器中运行PyCharm。
DISPLAY=localhost:0
。通过指定localhost
而不仅仅是DISPLAY=:0
,您运行的任何gui应用程序都将知道它需要通过TCP连接到VcXsrv,而不是查找不存在的unix套接字。