部署python CGI应用程序

2024-09-26 17:55:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我开发了一个python CGI应用程序,它在我的开发框中运行得很好。然而,我的托管提供商几乎不能控制它的服务器:我在python环境中使用了很多定制的东西(比如sqlalchemy和makotemplating),而且服务器python版本太旧了,无法使用。我的问题是:如何在我的主目录中设置一个独立的、完整的、独立的python环境,并安装运行应用程序所需的模块。。。最简单的方法;)


Tags: 模块方法版本服务器应用程序环境sqlalchemy提供商
3条回答

how do I set up a isolated, complete, standalone python environment in my home directory

  1. mkdir /home/me/.local(如果它还不存在。您不必使用.local,但它正成为放置此文件的正常位置)
  2. mkdir /home/me/.local/src(同上)
  3. cd /home/me/.local/src
  4. wget http://python.org/ftp/python/2.6.4/Python-2.6.4.tgz
  5. gzip -d Python-2.6.4.tgz
  6. tar xf Python-2.6.4.tar
  7. cd Python-2.6.4
  8. ./configure --prefix=/home/me/.local
  9. make
  10. make install

希望您现在可以运行Python:

  • /home/me/.local/bin/python

使用通常的方法安装所需的软件包设置.py脚本,但是对于您的Python版本:

  • /home/me/.local/bin/python setup.py install

在CGI文件上设置hashbang以使用您的Python版本:

  • #!/home/me/.local/bin/python

如果可以,考虑将应用程序迁移到WSGI。当然,现在您仍然可以使用wsgiref.handlers.CGIHandler通过CGI部署WSGI应用程序,但是在将来,当您拥有一个不那么糟糕的托管环境时,您将能够使用一个更少浪费的服务器接口来部署,比如mod_wsgi。在

在您的位置上,我将使用pyinstaller将Python、我的代码和所有依赖项捆绑到一个安装程序可执行文件中,并将其上载并运行。只需确保使用pyinstaller的SVN主干——“发布”版本已经过时了。在

请注意,使用SQLAlchemy和其他一切,使用CGI,您可能会发现自己的速度非常慢,因为每次访问页面时,您都要支付全部启动费用。但如果CGI是你能负担得起的,我想这就是我会努力应付的方式!-)在

这看起来像是virtualenv的工作。从网站:

Also, what if you can't install packages into the global site-packages directory? For instance, on a shared host.

这看起来正合你的胃口。在

相关问题 更多 >

    热门问题