How can I fix "PermissionError: [Errno 13] Permission denied: 'static'"?
How can I fix "PermissionError: [Errno 13] Permission denied: 'static'"?
我正在 运行使用 Flask 和 mod_wsgi 连接 apache2 服务器。
在我的 flask 脚本中,我有一个创建新目录的函数:
def updateDir():
dbData = News.query.all()
for row in dbData:
rowLink = createLink(row.id, row.title)
finalPath = "static/img/posts/{}".format(rowLink)
os.makedirs(finalPath, exist_ok=True)
当我尝试 运行 脚本时,它显示了这个回溯:
ERROR in app: Exception on /refresh [GET]
Traceback (most recent call last):
File "/var/www/abc/abc/venv3/lib/python3.6/site-packages/flask/app.py", line 1982, in wsgi_app
response = self.full_dispatch_request()
File "/var/www/abc/abc/venv3/lib/python3.6/site-packages/flask/app.py", line 1614, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/var/www/abc/abc/venv3/lib/python3.6/site-packages/flask/app.py", line 1517, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/var/www/abc/abc/venv3/lib/python3.6/site-packages/flask/_compat.py", line 33, in reraise
raise value
File "/var/www/abc/abc/venv3/lib/python3.6/site-packages/flask/app.py", line 1612, in full_dispatch_request
rv = self.dispatch_request()
File "/var/www/abc/abc/venv3/lib/python3.6/site-packages/flask/app.py", line 1598, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/var/www/abc/abc/main.py", line 133, in refresh
updateDir()
File "/var/www/abc/abc/main.py", line 77, in updateDir
os.makedirs(finalPath, exist_ok=True)
File "/usr/local/lib/python3.6/os.py", line 210, in makedirs
makedirs(head, mode, exist_ok)
File "/usr/local/lib/python3.6/os.py", line 210, in makedirs
makedirs(head, mode, exist_ok)
File "/usr/local/lib/python3.6/os.py", line 210, in makedirs
makedirs(head, mode, exist_ok)
File "/usr/local/lib/python3.6/os.py", line 220, in makedirs
mkdir(name, mode)
PermissionError: [Errno 13] Permission denied: 'static'
我已经授予 www-data 写入 'static' 文件夹的权限,但它仍然显示错误。
如果我没有涵盖所有内容,请随时提问以帮助我。
不要使用相对路径名。该进程的当前工作目录通常不会是您的代码所在的位置。您需要计算相对于某个锚点的绝对路径。参见:
我正在 运行使用 Flask 和 mod_wsgi 连接 apache2 服务器。
在我的 flask 脚本中,我有一个创建新目录的函数:
def updateDir():
dbData = News.query.all()
for row in dbData:
rowLink = createLink(row.id, row.title)
finalPath = "static/img/posts/{}".format(rowLink)
os.makedirs(finalPath, exist_ok=True)
当我尝试 运行 脚本时,它显示了这个回溯:
ERROR in app: Exception on /refresh [GET]
Traceback (most recent call last):
File "/var/www/abc/abc/venv3/lib/python3.6/site-packages/flask/app.py", line 1982, in wsgi_app
response = self.full_dispatch_request()
File "/var/www/abc/abc/venv3/lib/python3.6/site-packages/flask/app.py", line 1614, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/var/www/abc/abc/venv3/lib/python3.6/site-packages/flask/app.py", line 1517, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/var/www/abc/abc/venv3/lib/python3.6/site-packages/flask/_compat.py", line 33, in reraise
raise value
File "/var/www/abc/abc/venv3/lib/python3.6/site-packages/flask/app.py", line 1612, in full_dispatch_request
rv = self.dispatch_request()
File "/var/www/abc/abc/venv3/lib/python3.6/site-packages/flask/app.py", line 1598, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/var/www/abc/abc/main.py", line 133, in refresh
updateDir()
File "/var/www/abc/abc/main.py", line 77, in updateDir
os.makedirs(finalPath, exist_ok=True)
File "/usr/local/lib/python3.6/os.py", line 210, in makedirs
makedirs(head, mode, exist_ok)
File "/usr/local/lib/python3.6/os.py", line 210, in makedirs
makedirs(head, mode, exist_ok)
File "/usr/local/lib/python3.6/os.py", line 210, in makedirs
makedirs(head, mode, exist_ok)
File "/usr/local/lib/python3.6/os.py", line 220, in makedirs
mkdir(name, mode)
PermissionError: [Errno 13] Permission denied: 'static'
我已经授予 www-data 写入 'static' 文件夹的权限,但它仍然显示错误。
如果我没有涵盖所有内容,请随时提问以帮助我。
不要使用相对路径名。该进程的当前工作目录通常不会是您的代码所在的位置。您需要计算相对于某个锚点的绝对路径。参见: