19

我最近一直在研究 Python,并开始阅读 Django 的文档,但我不能否认我发现的大多数视频教程通常将 Linux 显示为所选操作系统。我大多忽略了这一点,但我开始遇到一些问题,人们使用诸如“触摸”之类的命令,我不知道 Windows 7 命令提示符中的等效命令是什么。我听说过 Power Shell 中的新物品,但它很乱,我担心这种“等效狩猎”可能会一次又一次地出现......

所以我开始想知道为什么大多数人将 Linux 与 Python 一起使用,学习使用 Linux 进行开发会是一个很好的举措(知道我的 Linux 知识完全是空的)?它会让我在使用 Python 进行开发时更有效率吗?是否可以列出这样做的好处?

4

5 回答 5

27

我使用 Windows 进行 Django 开发已经有一段时间了,但最终发现 Linux 是更好的选择。以下是一些原因:

  • 一些 Python 包根本无法在 Windows 中安装或正确安装,否则会给您带来很多麻烦
  • 如果你需要部署你的 Django 应用程序,使用 Unix 风格的系统更有意义,因为它 99% 的可能你的部署环境是相同的。在具有相同配置的本地计算机上进行试运行将在以后为您节省大量时间 + 在这里您“允许”犯错误。
  • 如果您的应用程序变得复杂,那么在 Linux 中获取所需的依赖项(无论是扩展、库等)更容易。在 Windows 中,您最终会寻找合适的站点来下载所有内容并经历一些安装和配置的麻烦。有时我花了很多时间来搜索一些特定的东西。在 Linux 中,它通常只是一个“apt-get”(或类似的),你就完成了。
  • 我有没有提到在 Linux 中获取和安装一切都更快?

当然,如果您的应用程序很简单并且您不需要关心部署,那么 Windows 就可以了。

于 2012-07-05T06:30:19.190 回答
8

虽然使用 Linux 进行 Python 开发有一些好处(例如,一些库只在 Linux 上工作);没有什么能阻止您使用 Windows 进行django工作;我每天都使用它,还没有任何东西出现。

适合您的正确 IDE 将大大有助于使您的开发体验更加愉快。许多人在 Eclipse 中使用Pydev ;但我更喜欢PyCharm

许多教程将向您展示 Linux 或 Mac 桌面(和 shell),您可以通过安装获得等效的命令(如touchls其他命令)unixtools——它们是常用 unix 工具的本机版本。

您应该为这个网站添加书签,该网站有用于常见 Python 库的 Windows 安装程序。

于 2012-07-05T05:52:00.997 回答
2

这取决于你最喜欢什么操作系统。您可以使用带有 pydev(included) 的 Aptana 3 进行开发。

开发时请记住使用“os”python lib 作为 dirs 的路径,这样您的应用程序将在 windows 和 linux 下正常工作。

例如:

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

MEDIA_ROOT = os.path.join(PROJECT_DIR, 'site_media')
于 2012-07-05T05:56:26.283 回答
1

我通常在我的桌面上使用 OSX,但我使用 Linux for Python,因为这就是它的部署方式。具体来说,我在虚拟机中使用 Ubuntu Desktop 来开发 Python 应用程序,并在服务器上使用 Ubuntu 来部署它们。这意味着当我准备好部署应用程序时,我对库和模块要求/依赖关系的理解可以 100% 转移到服务器上。

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

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

于 2012-07-05T07:10:10.200 回答
0

django是纯python编写的,所以使用Windows + Eclipse + PyDev进行开发就足够了。

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

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

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

于 2012-07-05T05:51:05.313 回答