[英]Django OSError: [Errno 13] Permission denied
我是 Python 和 Linux 新手,如有任何混淆,請提前道歉。 我正在嘗試使用以下方法收集我的靜態文件
python manage.py collectstatic
但這里有一些錯誤是我的回溯
> Copying '/var/www/Django/myweb/static/images/test.jpg'
Traceback (most recent call last):
File "manage.py", line 22, in <module>
execute_from_command_line(sys.argv)
File "/home/test01/Django/VENV/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 363, in execute_from_command_line
utility.execute()
File "/home/test01/Django/VENV/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 355, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/home/test01/Django/VENV/local/lib/python2.7/site-packages/django/core/management/base.py", line 283, in run_from_argv
self.execute(*args, **cmd_options)
File "/home/test01/Django/VENV/local/lib/python2.7/site-packages/django/core/management/base.py", line 330, in execute
output = self.handle(*args, **options)
File "/home/test01/Django/VENV/local/lib/python2.7/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 199, in handle
collected = self.collect()
File "/home/test01/Django/VENV/local/lib/python2.7/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 124, in collect
handler(path, prefixed_path, storage)
File "/home/test01/Django/VENV/local/lib/python2.7/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 364, in copy_file
self.storage.save(prefixed_path, source_file)
File "/home/test01/Django/VENV/local/lib/python2.7/site-packages/django/core/files/storage.py", line 54, in save
return self._save(name, content)
File "/home/test01/Django/VENV/local/lib/python2.7/site-packages/django/core/files/storage.py", line 321, in _save
os.makedirs(directory)
File "/home/test01/Django/VENV/lib/python2.7/os.py", line 157, in makedirs
mkdir(name, mode)
OSError: [Errno 13] Permission denied: '/var/www/staticfiles/images'
我也嘗試sudo python manage.py collectstatic
>File "manage.py", line 17, in <module>
"Couldn't import Django. Are you sure it's installed and "
ImportError: Couldn't import Django. Are you sure it's installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment?
這是我的setting.py
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static'),
]
STATIC_ROOT = '/var/www/staticfiles'
嘗試刪除路徑var
前面的斜杠。
所以
STATIC_ROOT = '/var/www/staticfiles/
改為
STATIC_ROOT = 'var/www/staticfiles/'
或
STATIC_ROOT = os.path.join(BASE_DIR, 'var/www/staticfiles/')
問題是路徑無效,因此權限被拒絕。
授予文件夾/var/www/staticfiles所需的權限:
chmod -R 755 /var/www/staticfiles
如評論中所述,不建議向所有用戶授予777
權限,而是嘗試使用chown -R your_user your_file
更改文件夾的所有者
嘗試使 manage.py 可執行。 這解決了我的問題:)
chmod +x manage.py
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.