3

我有一些我想执行的 python 脚本和以下配置:安装了 Ubuntu 10.04、Apache2、Python 2.6、mod_python 和 mod_wsgi。

我已按照以下网站上的说明进行操作:

http://bytes.com/topic/python/answers/474462-apache-python-ubuntu

http://apache.active-venture.com/cgi-configure.html

http://modpython.org/live/current/doc-html/inst-testing.html

http://code.google.com/p/modwsgi/wiki/QuickInstallationGuide

http://wiki.apache.org/httpd/DistrosDefaultLayout

sites-available 中的默认文件:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www
    <Directory />
            Options FollowSymLinks
            AllowOverride None
    </Directory>

    <Directory /var/www/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
            AddHandler mod_python .py
            AddHandler cgi-script .cgi py
            AllowOverride None
            Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
            Order allow,deny
            Allow from all
    </Directory>

我收到 500 内部服务器错误。我还将文件的权限更改为 755

py 文件只是打印一些应该出现在页面上的文本。我应该怎么办?谢谢

[编辑]:更新,它与下面显示的 py 文件 错误日志中的错误有关。

Traceback (most recent call last):
  File "/usr/lib/cgi-bin/amissa2.py", line 80, in <module>
    zoom_factor = int(parms.getfirst('zoom')) * int(parms.getfirst('zsize'))
TypeError: int() argument must be a string or a number, not 'NoneType'

从 None 转换为 int 似乎是一个错误,在这里:

zoom_factor = int(parms.getfirst('zoom')) * int(parms.getfirst('zsize'))

关于如何进行这种转换的任何提示?

4

2 回答 2

1

您没有加载 wsgi 模块。

LoadModule wsgi_module modules/mod_wsgi.so

此外,您只需要安装 mod_wsgi 或 mod_python。除非您有特殊需要,否则两者都不是。

于 2011-01-05T15:53:40.280 回答
1

如果 parms.getfirst('zoom') 或 parms.getfirst('zsize') 返回 None,你可能没有在你的 URL 中提供这些(?不知道这些参数是什么,只是猜测)。定义当这些缺失时您想要的行为(这是否意味着“0”缩放,或者由于您正在相乘,“1”更有意义?)。

然后创建您自己的转换函数,该函数知道如何将 None 转换为 int(取决于您定义的行为)并调用它而不是 int()。

def convert(value):
   if value is None:
      return 0 # or 1, or whatever
   else:
      return int(value)
于 2011-01-05T16:39:29.137 回答