Python/Django开发,Windows还是Linux?

19

最近我一直在学习Python,并开始阅读Django的文档,但我不能否认一个事实,大多数我发现的视频教程通常都显示Linux作为首选操作系统。我大多忽略了这个问题,但我开始遇到一些问题,因为有些人使用“touch”等命令,而我不知道在Windows 7命令提示符中的相当命令是什么。我听说过PowerShell中的New-Item,但它很混乱,我担心这种“寻找相当命令”的情况可能会反复出现...

所以我开始想为什么大多数人在Python开发中使用Linux,是否学习使用Linux进行开发目的是一个好选择呢?这会让我在一般Python开发中更有效率吗?能列出这样做的好处吗?


更适合这个问题的地方是:http://programmers.stackexchange.com/ - sahid
5个回答

27

我曾经在Windows上使用了相当长的时间来进行Django开发,但最终发现Linux才是更好的选择。以下是一些原因:

  • 有些Python包在Windows中根本无法安装或无法正确安装,否则很可能会给您带来很多麻烦
  • 如果您需要部署Django应用程序,使用Unix风格的系统更加合理,因为您的部署环境99%可能是相同的。在本地机器上使用相同配置进行干运行将为您节省大量时间,同时您可以“允许”自己犯错。
  • 如果您的应用程序变得复杂,那么在Linux中获取所需的依赖关系(如扩展、库等)要容易得多。在Windows中,您不得不寻找正确的网站下载所有内容,并经过一些安装和配置的麻烦。有时仅仅是搜索特定内容就花费了我很多时间。而在Linux中,它通常只需要运行“apt-get”(或类似命令),您就完成了。
  • 我提到了在Linux中一切都更快速地获取和安装吗?

当然,如果您的应用程序很简单,而且您不需要考虑部署,那么Windows也可以。


我同意你的观点,Linux更适合开发人员使用,但是我想转向Windows 10进行Python Django开发。Windows引入了“Power Shell”,这会有所改变吗?我转向Windows的主要原因之一是Visual Studio的Community版本和Azure平台。但我仍然不确定开发是否能像在Linux上那样顺利进行。 - Chetan Sharma
我无法在这方面给你一个确切的答案,但是PowerShell并不同于Linux终端。据我所知,它是不可替代的。你仍然会遇到我之前提到的问题(与你使用的终端无关)。当然,最终你可以尝试一下。 - Torsten Engelbrecht
1
我认为部署方面的重要性被低估了。如果你计划在Windows上部署你的应用程序,那么请务必使用Windows进行开发。如果你计划在Linux上部署它,请使用Linux或至少一种UNIX版本进行本地开发。这有助于您尽早解决任何特定于平台的依赖问题,而不是在QA或生产中出现特定于平台的错误时再去修复,从而降低修复成本。 - tobias.mcnulty
如果您完全控制应用程序部署的位置,那么是的。在大多数情况下,您是公司的雇员,而大多数公司会在类似Linux的系统中部署基于Python的应用程序。 - Torsten Engelbrecht

8
尽管在Python开发中使用Linux有一些好处(例如,有些库只能在Linux上运行),但你完全可以在Windows上进行django的工作;我每天都使用它,还没有出现什么问题。
选择适合自己的IDE将极大地提高开发体验。许多人使用Eclipse的Pydev,但我更喜欢PyCharm
许多教程将展示Linux或Mac桌面(和shell),你可以通过安装unixtools来获取相应的命令(如touchls等),这些是常见Unix工具的本机版本。
你应该收藏this website,其中有常用Python库的Windows安装程序。

2

这取决于你最喜欢的操作系统。你可以使用Aptana 3和pydev(已包含)进行开发。

在开发时,请记住使用“os”Python库来获取目录路径,以便你的应用程序能够在Windows和Linux下正常工作。

例如:

PROJECT_DIR = os.path.dirname(os.path.abspath(__file__))

MEDIA_ROOT = os.path.join(PROJECT_DIR, 'site_media')

1

Django是用纯Python编写的,因此在开发方面使用Windows + Eclipse + PyDev就足够了。

如果你真的想跟随那些使用一些Linux命令的酷哥们,那么可以安装cygwinmingWin并将系统PATH设置为BIN指令。然后,你就可以使用它们(包括你的touch)。

Linux是部署Django项目的最佳选择,你可以轻松地编译/安装/配置一些很酷的东西,如nginx、uWSGI、mod_wsgi、Apache2和许多有用的Python C扩展。

使用Linux的另一个原因是,用于托管项目的虚拟专用服务器更有可能支持它。


1

我通常在我的桌面电脑上使用OSX,但是我使用Linux来开发Python应用程序,因为这样它才能被部署。具体来说,我使用Ubuntu桌面虚拟机来开发Python应用程序,并且在服务器上使用Ubuntu来部署它们。这意味着当我准备部署应用程序时,我对库和模块要求/依赖的理解是100%可转移的。

如果我使用OSX(或Windows)来开发Python应用程序,我将不得不处理两种不同的处理要求和依赖关系的方法——这太麻烦了。

我的建议:使用VMWare Player(它是免费的),找到一个Ubuntu虚拟机开始学习。这并不太复杂,实际上非常有趣。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接