代码之家  ›  专栏  ›  技术社区  ›  Brandon

在OS X上设置Python web开发环境

  •  2
  • Brandon  · 技术社区  · 17 年前

    我在跑步 Mac OS X Leopard 想知道在我的机器上使用Python、MySQL和Apache来设置web开发环境的简单方法是什么,这将允许我在Mac上开发,然后在将来轻松地将其移动到主机上。

    我一直在尝试安装mod_wsgi,并将其配置为与Django一起工作,现在有点头疼。除了谷歌,还有没有其他网络主机目前使用mod_wsgi,所以我可以在那里开发?

    10 回复  |  直到 12 年前
        1
  •  2
  •   psj    17 年前

    我们找到了virtualenv[ http://pypi.python.org/pypi/virtualenv] 成为我们开发设置中非常宝贵的一部分。我们通常处理使用不同版本Python库等的多个项目。如果没有像virtualenv那样提供本地化、定制的Python环境,在一台机器上完成这项工作是非常困难的。

        2
  •  2
  •   Peter Mortensen Pieter Jan Bonestroo    12 年前

    大多数Python应用程序正在远离mod_Python。它可能因框架或提供者而异,但大多数开发工作都是在mod_wsgi中进行的。

    使用 WSGI 该标准将使您的Python应用程序服务器变得不可知,并允许其他不错的添加,比如WSGI中间件。其他供应商只能提供 CGI (在性能方面无法很好地扩展),或者 FastCGI .

        3
  •  1
  •   Peter Mortensen Pieter Jan Bonestroo    12 年前

    我和 Django 仅使用中包含的服务器 manager.py 脚本,并且在迁移到生产环境时没有遇到任何问题。

    如果将应用程序放在为您进行环境配置的主机上(例如 WebFaction )从开发到生产不应该有问题。

        4
  •  1
  •   Peter Mortensen Pieter Jan Bonestroo    12 年前

    我在Mac笔记本电脑上运行Linux虚拟机。这使我能够保持开发环境和生产环境完全同步(并制作快照以便于实验/回滚)。我找到了 VMWare Fusion 虽然效果最好,但也有免费的开源替代方案,比如 VirtualBox 如果你只是想把脚弄湿。

    我在Mac上共享来宾Linux操作系统中的源文件夹,并使用我选择的Mac源代码编辑器(我使用 Eclipse / PyDev 因为其他方面都很好 TextMate 还不能很好地处理中文文本)。我已经记录了来宾Linux操作系统的软件设置 here ; 它针对多种服务进行了优化 Django 应用程序(包括geodjango)。

    为了增加额外的乐趣,您可以编辑Mac的/etc/hosts文件,使其成为您的域名。com解析到你的来宾Linux Box内部IP地址,并有一个简单的方法在线或离线处理/测试多个web项目,而不需要太多麻烦。

        5
  •  0
  •   Robert Elwell    17 年前

    你要找的是Mod_Python。它是一个基于Apache的Python解释器。看看这里:

    http://www.modpython.org/

        6
  •  0
  •   slf    17 年前

    Google App Engine 他为你做了这件事。虽然有一些局限性,但它非常有效,它为您提供了一条免费托管的途径。

        7
  •  0
  •   Glenn    17 年前

    当然,在最新版本中,Mac OS X附带了Python和Apache。不过,您可能希望在使用的版本中具有更大的灵活性,或者您可能不喜欢苹果对其配置方式所做的调整。获得一套更通用的工具(包括MySQL)的一个好方法是重新安装它们。这将有助于解决便携性问题。这些框架可以相对容易地通过这些开源软件包提供商之一安装。

        8
  •  0
  •   dbr    17 年前

    mod_wsgi 非常非常简单。

    Pyerweb environ wsgi_start_response ,并返回一个字符串。

    envrion 例如,带有请求信息的dict environ['PATH_INFO'] 是请求(URI)

    wsgi_启动_响应 这是一个可调用函数,您可以执行该函数来设置标题:

    wsgi_start_response(output_response, output_headers)
    

    output_response 包含要发送的HTTP状态的字符串( 200 OK 等),以及 output_headers 是包含标题的元组列表(例如, [("Content-type", "text/html")] 将设置内容类型)

    然后函数返回一个包含输出的字符串。。就这些!

    要运行它,请使用 spawning 你可以这么做 spawn scriptname.my_wsgi_function_nae 它将开始监听8080端口。

    通过mod_wsgi使用它,它的文档很好, http://code.google.com/p/modwsgi/wiki/QuickConfigurationGuide 还有一个 django specific section

    使用mod_wsgi的好处在于,它是服务于Python web应用程序的标准。我最近决定使用Google App Engine,当Pyerweb(我在这个答案的开头链接到它)工作时,我感到惊讶 完全是无意的。当我注意到Django应用程序也在其上运行时,我的印象更加深刻。。标准化是件好事!

        9
  •  0
  •   Peter Mortensen Pieter Jan Bonestroo    12 年前

    你可能想调查一下 web2py 。它包括一个可通过浏览器开发的管理界面。你所需要的一切都在一个包裹里,包括 Python .

        10
  •  0
  •   Peter Mortensen Pieter Jan Bonestroo    12 年前

    退房 WebFaction 尽管我没有使用它们(我也与它们的业务没有任何关系/从中获利)。我一遍又一遍地读到他们的服务有多好,尤其是他们的服务有多好 Django -他们很友好。有一个特别的问题 post in their forums 关于和Django一起跑步 mod_wsgi .

    和我之前的其他人一样,我强烈建议使用Ian Bicking的 virtualenv 隔离你的开发环境;有一个 dedicated page in the mod_wsgi documentation 正是为了这种设置。

    我也敦促你退房 pip ,这基本上是一个更智能的简易安装,它了解virtualenv。Pip为virtualenv风格的开发做了两件非常好的事情:

    • 知道如何从源代码管理安装( SVN , Git 等等……)
    • 知道如何“冻结”现有开发环境的需求,以便您可以在其他地方为多个开发人员或部署创建环境。
    推荐文章