Django OSError:[Errno 13]权限被拒绝

Ter*_*shu 6 python django

我是 python 和 Linux 的新手,对于任何混淆提前表示歉意。我正在尝试使用收集我的静态文件

python manage.py collectstatic
Run Code Online (Sandbox Code Playgroud)

但这里有一些错误是我的回溯

> 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'
Run Code Online (Sandbox Code Playgroud)

我也尝试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?
Run Code Online (Sandbox Code Playgroud)

这是我的设置.py

STATIC_URL = '/static/'
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static'),
] 
STATIC_ROOT = '/var/www/staticfiles'
Run Code Online (Sandbox Code Playgroud)

Mau*_*zar 5

授予文件夹/var/www/staticfiles所需的权限:

chmod -R 755 /var/www/staticfiles
Run Code Online (Sandbox Code Playgroud)

正如评论中提到的,不建议授予777所有用户权限,而是尝试使用以下命令更改文件夹的所有者chown -R your_user your_file