在托管服务器上安装Python + Jinja2 + WSGI

时间:2014-04-30 02:06:40

标签: python cpanel jinja2 wsgi

是否可以安装Jinja2并在托管服务器上创建一个我只能使用cpanel访问的WSGI Web应用程序?

我创建了一个简单的CGI Python页面并尝试使用from jinja2 import Template,但我收到错误No module named jinja2

我尝试使用[this shell] [1]来运行命令easy_install Jinja2。 shell工作,easy_install运行,但它显示can't create or remove files in install directory(正如预期的那样)。

至于WSGI,我甚至不知道从哪里开始。我发现的对安装和配置的任何引用只能在我自己的服务器上运行,而不能在托管服务器上运行。

1 个答案:

答案 0 :(得分:0)

这是我在一些研究后发现的。

在托管服务器上安装任何干扰Apache的内容是不可能的。例如,安装Mod_python或CherryPy是不可能的,因为它需要修改Apache的配置。

使用pip或easy_install安装像J​​inja这样的Python软件包也是不可能的。

但是可以通过复制用户有权访问的任何文件夹中的源文件来安装Jinja,并告诉Python从该文件夹导入。

使用pip或easy_install进行安装会处理依赖关系,手动复制文件不会。因此,所有依赖项也必须手动复制。

我发现的最后一个问题是Jinja需要模块pkg_resources,is installed with easy_install,不能使用(参见上文)。解决方案是创建一个自定义加载器。我复制了documentation中运行良好的那个。

以下是我遵循的步骤:

  1. 创建名为lib
  2. 的文件夹
  3. 下载Jinja并将其复制到lib/jinja2文件夹
  4. 下载MarkupSafe并将其复制到lib/markupsafe文件夹
  5. lib文件夹添加到导入路径:sys.path.insert(0, "lib")
  6. 像往常一样导入Jinja:import jinja2
  7. 按照建议here
  8. 创建自定义加载程序

    然后我使用cPanel密码保护lib文件夹,并安装了Peewee和其他软件包。

    我真的很想使用CherryPy,但是由于我的流量很小,这样就可以了。