代码之家  ›  专栏  ›  技术社区  ›  Alan Scarpa

端口80上的插座错误

  •  0
  • Alan Scarpa  · 技术社区  · 11 年前

    我在使用PyInstaller创建可执行文件时遇到问题。我已经能够使用Python和Bottle成功地创建一个简单的web服务器,但当我使用PyInstaller创建可执行文件并单击它时,我会得到以下输出:

    Alans-MBP:~ alanscarpa$ /Users/alanscarpa/Desktop/testSite/dist/testing ; exit;
    Bottle v0.13-dev server starting up (using WSGIRefServer())...
    Listening on http://0.0.0.0:80/
    Hit Ctrl-C to quit.
    
    Traceback (most recent call last):
      File "<string>", line 10, in <module>
      File "/Users/alanscarpa/Desktop/testSite/build/testing/out00-PYZ.pyz/bottle", line 3093, in run
      File "/Users/alanscarpa/Desktop/testSite/build/testing/out00-PYZ.pyz/bottle", line 2692, in run
      File "/Users/alanscarpa/Desktop/testSite/build/testing/out00-PYZ.pyz/wsgiref.simple_server", line 151, in make_server
      File "/Users/alanscarpa/Desktop/testSite/build/testing/out00-PYZ.pyz/SocketServer", line 420, in __init__
      File "/Users/alanscarpa/Desktop/testSite/build/testing/out00-PYZ.pyz/wsgiref.simple_server", line 48, in server_bind
      File "/Users/alanscarpa/Desktop/testSite/build/testing/out00-PYZ.pyz/BaseHTTPServer", line 108, in server_bind
      File "/Users/alanscarpa/Desktop/testSite/build/testing/out00-PYZ.pyz/SocketServer", line 434, in server_bind
      File "/Users/alanscarpa/Desktop/testSite/build/testing/out00-PYZ.pyz/socket", line 224, in meth
    socket.error: [Errno 13] Permission denied
    logout
    
    [Process completed] 
    

    前3行是完美的-如果工作正常,应该是这样的:

      Bottle v0.13-dev server starting up (using WSGIRefServer())...
        Listening on http://0.0.0.0:80/
        Hit Ctrl-C to quit.
    

    但之后的一切都会打乱我的程序!

    这是我的Python文件testing.py

    #!/usr/bin/python    
    from bottle import route, run, template
    
    
    @route('/testing')
    def index():
        return 'Hello..testing'
    
    run(host='0.0.0.0', port=80, debug=True)
    

    当我访问mylocalip/testing时,我的网页不可用。但如果我打开终端并写:sudo/path/to/testing,它就可以完美地工作了。(我显然希望能够将可执行文件发送给某人,他们只需单击它即可运行,而不必使用终端)。

    有什么建议吗?

    编辑:我将端口更改为8080,它正在工作!有人知道为什么吗?

    1 回复  |  直到 11 年前
        1
  •  2
  •   Thom Wiggers    11 年前

    在大多数系统(至少是BSD、OS X和Linux)上,如果没有root权限,就无法监听1024以下的端口。