我正在研究如何将vagrant添加到我的开发环境中。我在python中进行了大部分的web开发,而且我对python相关的细节很感兴趣,但问题更为笼统。
我喜欢将所有与开发相关的东西隔离在虚拟机中的想法,但我还没有找到一种有效的方法来处理它。基本上,我看到了3种设置方法:
让所有服务(如数据库服务器,MQ等)以及正在开发的应用程序在VM中运行。开发人员将ssh到VM并在那里编辑源代码,运行应用程序,测试等,所有这些都在ssh终端中。
与1)相同,但使用普通GUI编辑器编辑映射目录中主机上的源。通过ssh运行应用程序和测试流浪者。这似乎是使用流浪汉最流行的方式。
仅在VM中托管外部服务。在主机上将app依赖项安装到virtualenv中,然后从那里运行应用程序和测试。
所有这些方法都有其自身的缺陷:
在文本控制台中进行开发实在太不方便了,这对我来说是个噱头。虽然我有经验的ViM用户并且可以使用它,但我不能向任何曾经在任何图形IDE中工作的人推荐这种方法。
您可以使用熟悉的工具进行开发,但不能使用自动完成功能,因为所有python库都安装在VM中。您的回溯将指向非本地文件。您将无法在编辑器中打开库源,ctags将无法工作。
失去大部分“隔离”功能:你必须自己安装所有编译器,* -dev库来安装python依赖项并运行应用程序。在linux上它很容易,但是在OSX上设置它们可能要困难得多,而在Windows上它几乎是不可能的。
所以,问题是:第二和第三种方法的问题是否有任何补救措施?更具体地说,如何创建一个隔离且易于复制的环境,并在主机上享受所有舒适的开发?
答案 0 :(得分:0)
在大多数IDE中,您可以添加项目外部的“库”路径,以便您的代码完成等工作。关于回溯,我不熟悉python,但这听起来像是通过服务器和开发机器之间的“映射”路径解决的问题。这通常是为什么#2通常要走的路(除非你有一个团队愿意做#1)。