如何让 OS X Server 5.0 使用 Python 3.5?

如何让 OS X Server 5.0 使用 Python 3.5?

El Capitan 和 OS X Server 5.0 默认使用 Python 2.7。我已经安装了 Python 3.5,但是如何让 OS X Server 5.0 使用它进行 wsgi,而不会破坏 El Capitan 对 Python 2.7 的依赖?

基本上,我希望 Mac OS X Server 5.0 使用 Python 3.5 而不是 Python 2.7。

答案1

Apple 支持论坛中提供了一个(可接受的)答案:https://discussions.apple.com/thread/7331263?start=0&tstart=0

我不需要对当前的 Server 5.0 执行此操作,但之前已经对 Server 4.x 执行过此操作(我现在使用 Linux 虚拟机来实现此类目的,但解决方案与 OS X Server 所需的完全相同。)

首先,绝对不要尝试更新任何 Apple 附带软件的内置组件,例如 Apache,以及您遇到的 Python。虽然这样做是可能的,但 Apple 不仅通过添加新的安全措施来防止其“官方”软件在您不知情的情况下被修改/破解,从而使此类步骤更加难以实施,而且尝试这种方法极有可能会破坏某些东西,尤其是 Server.app 与这些组件之间的集成,也可能会导致安装未来的官方 Apple 更新失败或降低您所做的更新的级别。

因此,正如我上面所暗示的,我之前使用过一种解决方案,它有效,并且不会导致上述问题 - 至少就 Python 而言。您需要采用的方法是不要使用 Apple 的 Python,而是安装一个专门用于您自己的网站的单独副本,事实上,如果您要运行多个网站 - 每个网站都需要使用 Python,您将为每个网站提供单独的 Python 副本,因为各种基于 Python 的项目依赖于特定的 Python 版本是很常见的。这种情况非常常见,以至于有一个专门用于执行此操作的工具称为 VirtualEnv。

http://docs.python-guide.org/en/latest/dev/virtualenvs/

其运作方式如下:

  • 您安装 VirtualEnv
  • 运行 VirtualEnv 并为您的网站创建一个虚拟环境
  • 在该虚拟环境中安装网站所需的特定 Python 版本
  • 您将网站所需的所有 Python 模块安装到该虚拟环境中
  • 您将 Python 代码安装到该虚拟环境中

然后,您可以在网站配置文件中获得适当的条目以在该虚拟环境中运行。

通过采用这种方法,可以同时运行多个不同版本的 Python,并且不会让它们相互冲突。

注意:要在 OS X 中安装 VirtualEnv,请执行以下操作。

sudo easy_install virtualenv

请注意,您可以通过多种方式安装该virtualenv软件包。我会使用 pip:

pip install virtualenv

pip 随 Python 2.7.9 及更高版本提供,也可用于向虚拟环境添加更多包。如果您没有pip,可以轻松安装它:

curl -o get-pip.py https://bootstrap.pypa.io/get-pip.py
python get-pip.py

相关内容