У меня есть скрипт bash, который помогает установить локальный SimpleHTTPServer
.Python запускает скрипт bash и генерирует OSError
python -m SimpleHTTPServer 8080
Я разместил это внутри моей папки проекта. В то время как я бегу программу с помощью:
subprocess.call('./setup.sh')
сообщение об ошибке выходит:
Traceback (most recent call last):
File "test.py", line 2, in <module>
subprocess.call('./setup.sh')
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 522, in call
return Popen(*popenargs, **kwargs).wait()
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 709, in __init__
errread, errwrite)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 1326, in _execute_child
raise child_exception
OSError: [Errno 13] Permission denied
Я повторен это в терминале
localhost:Desktop XXXX$ sh setup.sh
Serving HTTP on 0.0.0.0 port 8080 ...
Это работает отлично. Я помню, что несколько раз, когда терминал выскочил в окно, спросите меня о разрешении на python о чем-то, связанном с брандмауэром, и я разрешил его. Вы можете мне помочь?
Вы, вероятно, нужно установить экс ecutable bit на 'setup.sh'. – devnull
Запустите его как root (sudo) – Dan