2015-03-31 1 views
0

У меня возникли проблемы с созданием рабочего исполняемого файла с помощью PyInstaller. Я был в состоянии успешно создать простой веб-сервер с помощью Python и бутылки - но когда я создаю свой исполняемый файл с PyInstaller и нажмите на нее - я получаю следующий результат:Socketerror на порту 80

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/тестирование - я веб-страница недоступна. Но если я открою терминал и напишу: sudo/path/to/testing - он отлично работает. (Я, очевидно, хочу, чтобы иметь возможность отправить исполняемый файл кому-то, и они просто нажимают его, чтобы запускать вместо того, чтобы использовать терминал).

Любые предложения?

EDIT: Я сменил порт на 8080, и он работает! Кто-нибудь знает, почему?

ответ

1

Вы не можете прослушивать порты ниже 1024 без привилегий root в большинстве систем (по крайней мере, BSD, OS X и Linux).