我正在尝试在运行ubuntu 16.04的虚拟服务器上部署Django应用程序.
python manage.py makemigrations
创建某些模型和字段后,导致以下回溯:
Traceback (most recent call last):
File "manage.py", line 12, in <module>
execute_from_command_line(sys.argv)
File "/home/sysadmin/.virtualenvs/django/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 353, in execute_from_command_line
utility.execute()
File "/home/sysadmin/.virtualenvs/django/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 345, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/home/sysadmin/.virtualenvs/django/local/lib/python2.7/site-packages/django/core/management/base.py", line 348, in run_from_argv
self.execute(*args, **cmd_options)
File "/home/sysadmin/.virtualenvs/django/local/lib/python2.7/site-packages/django/core/management/base.py", line 399, in execute
output = self.handle(*args, **options)
File "/home/sysadmin/.virtualenvs/django/local/lib/python2.7/site-packages/django/core/management/commands/makemigrations.py", line 150, in handle
self.write_migration_files(changes)
File "/home/sysadmin/.virtualenvs/django/local/lib/python2.7/site-packages/django/core/management/commands/makemigrations.py", line 179, in write_migration_files
with open(writer.path, "wb") as fh:
IOError: [Errno 13] Permission denied: u'/home/sysadmin/public_html/aegee-stuttgart.org/aegeewww/migrations/0001_initial.py'
我也尝试过:
sudo python manage.py makemigrations
但是由于我使用的是虚拟环境,由于未在系统范围内安装django,因此出现以下错误:
ImportError: No module named django.core.management
如何解决此错误?正确识别了python路径,并且venv中显然安装了django.
如何设置用户的权限?
谢谢!
解决方法:
您需要授予用户迁移文件夹的访问权限:
sudo chown <your_username> <path_to_migrations_folder>