Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 错误:[errno 13]权限被拒绝-Pi需要什么权限?_Python 2.7_Raspberry Pi_Bottle - Fatal编程技术网

Python 2.7 错误:[errno 13]权限被拒绝-Pi需要什么权限?

Python 2.7 错误:[errno 13]权限被拒绝-Pi需要什么权限?,python-2.7,raspberry-pi,bottle,Python 2.7,Raspberry Pi,Bottle,我正在尝试运行bottle py,但出现以下错误: Traceback (most recent call last): File "/home/pi/Desktop/gggg.py", line 176, in <module> run(host='somehost', port=81) File "/usr/lib/python2.7/dist-packages/bottle.py", line 2426, in run server.run(app)

我正在尝试运行bottle py,但出现以下错误:

Traceback (most recent call last):
  File "/home/pi/Desktop/gggg.py", line 176, in <module>
    run(host='somehost', port=81)
  File "/usr/lib/python2.7/dist-packages/bottle.py", line 2426, in run
    server.run(app)
  File "/usr/lib/python2.7/dist-packages/bottle.py", line 2123, in run
    srv = make_server(self.host, self.port, handler, **self.options)
  File "/usr/lib/python2.7/wsgiref/simple_server.py", line 144, in make_server
    server = server_class((host, port), handler_class)
  File "/usr/lib/python2.7/SocketServer.py", line 419, in __init__
    self.server_bind()
  File "/usr/lib/python2.7/wsgiref/simple_server.py", line 48, in server_bind
    HTTPServer.server_bind(self)
  File "/usr/lib/python2.7/BaseHTTPServer.py", line 108, in server_bind
    SocketServer.TCPServer.server_bind(self)
  File "/usr/lib/python2.7/SocketServer.py", line 430, in server_bind
    self.socket.bind(self.server_address)
  File "/usr/lib/python2.7/socket.py", line 224, in meth
    return getattr(self._sock,name)(*args)
error: [Errno 13] Permission denied
>>> 
回溯(最近一次呼叫最后一次):
文件“/home/pi/Desktop/gggg.py”,第176行,在
运行(host='somehost',port=81)
文件“/usr/lib/python2.7/dist packages/battle.py”,第2426行,运行中
server.run(应用程序)
文件“/usr/lib/python2.7/dist packages/battle.py”,第2123行,运行中
srv=make_服务器(self.host、self.port、handler、**self.options)
文件“/usr/lib/python2.7/wsgiref/simple_server.py”,第144行,make_server中
服务器=服务器类((主机、端口)、处理程序类)
文件“/usr/lib/python2.7/SocketServer.py”,第419行,在__
self.server_bind()
文件“/usr/lib/python2.7/wsgiref/simple_server.py”,第48行,在服务器绑定中
HTTPServer.server\u绑定(self)
文件“/usr/lib/python2.7/BaseHTTPServer.py”,第108行,在服务器绑定中
SocketServer.TCPServer.server\u绑定(self)
服务器绑定中的文件“/usr/lib/python2.7/SocketServer.py”,第430行
self.socket.bind(self.server\u地址)
文件“/usr/lib/python2.7/socket.py”,第224行,meth格式
返回getattr(self.\u sock,name)(*args)
错误:[Errno 13]权限被拒绝
>>> 
我以“pi”身份登录。以root用户身份登录可以解决此问题。我的问题是Ping py和python需要运行哪些权限(哪些文件夹和哪些权限)

编辑:


不确定这是否重要,但我的python文件在桌面目录中。我还将文件夹/子文件夹的权限设置为“全部读写”

多亏了@Wooble,我意识到权限错误与端口有关,而不是与文件系统有关

一个可行的解决方法是使用1024以上的端口,该端口工作良好,适合开发。目前正在使用端口200:

run(host='someIP', port=2000)
不过,我仍在寻找端口80权限错误解决方案。

1)如果您计划在生产中运行此功能,则不应使用瓶子内置的web服务器。您应该从以下位置使用Apache、nginx等:

内置的默认服务器基于wsgiref WSGIServer。这 非线程HTTP服务器非常适合开发和早期应用 但在服务器加载时可能会成为性能瓶颈 增加。有三种方法可以消除此瓶颈:

  • 使用不同的多线程或异步服务器
  • 启动多个服务器进程,并使用负载平衡器分散负载
  • 两者都做
2) [如您所知,]您必须是root才能绑定到端口80;没办法。您是否考虑过使用
sudo

sudo /home/pi/Desktop/gggg.py

您可以将sudoers配置为安全地允许用户“pi”仅执行gggg.py(或最终用于生产的任何Web服务器)。

相关:似乎并不相关,它不是仅用于开发的系统,所以我只想更改所需的权限。您想使用小于1024的端口,并且不想成为root。似乎和我有关。shrugDidn不认为它与端口有关,将进一步研究它,谢谢。生产使用将是单用户的,所以我认为不值得使用apache。不过,我以后可能会从瓶子换成类似WebPy的东西。Sudo听起来是一个不错的解决方案,我没有想到,但由于它将作为cron作业运行,因此不会让我感到烦恼,而且对于1024以上的开发端口来说,效果很好,谢谢。很酷,很乐意提供帮助。是的,如果你的应用程序是单用户的,并且容量很小(并且不需要完整web服务器的任何其他功能),那么你的计划听起来不错。干杯