django makemigrations 与 python-social-auth 导致权限被拒绝错误

标签 django python-social-auth django-migrations

将 python 社交身份验证添加到我安装的应用程序后,即

INSTALLED_APPS = (
    ...
    'social.apps.django_app.default',
    ...
)

然后尝试

python manage.py makemigrations

我收到一个毫不奇怪的权限错误

Migrations for 'default':
  0002_auto_20150217_2053.py:
    - Alter field user on usersocialauth
Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/lib/python2.7/site-packages/django/core/management  /__init__.py", line 385, in execute_from_command_line
utility.execute()
File "/usr/lib/python2.7/site-packages/django/core/management/__init__.py", line 377, in execute
  self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/lib/python2.7/site-packages/django/core/management/base.py", line 288, in run_from_argv
  self.execute(*args, **options.__dict__)
File "/usr/lib/python2.7/site-packages/django/core/management/base.py", line 338, in execute
  output = self.handle(*args, **options)
File "/usr/lib/python2.7/site-packages/django/core/management/commands/makemigrations.py", line 124, in handle
  self.write_migration_files(changes)
File "/usr/lib/python2.7/site-packages/django/core/management/commands /makemigrations.py", line 153, in write_migration_files
  with open(writer.path, "wb") as fh:
  IOError: [Errno 13] Permission denied: u'/usr/lib/python2.7/site-packages/social/apps/django_app/default/migrations/0002_auto_20150217_2053.py'

我无法写入系统范围的包安装目录,这是有道理的。

有一些明显的方法可以解决这个问题,例如更改 site-packages/social 目录的权限。然而,这是唯一的方法吗,还是我错过了什么?

最佳答案

通过上面接受的解决方案,您可以有效地将项目文件放入您的 python 环境中。每次部署到新服务器时,您都必须运行 makemigrations 来创建这些文件。

如何告诉 makemigrations 将社交迁移放入您自己的项目中?

MIGRATION_MODULES = {
    # social.apps.django_app.default    
    'default': 'myproject.mysocial.migrations',           
}

这样,当您部署到服务器时,您的项目是独立的,并且无需破坏您的 Python 环境即可运行。

关于django makemigrations 与 python-social-auth 导致权限被拒绝错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28571174/

相关文章:

python - django 填充 html 表单

spring - 社交验证 : Invalid Scopes: read_stream

python - 我将 python 社交身份验证与 django 结合使用。我无法断开与 Steam 的连接

python - Django 1.7 空白 CharField/TextField 约定

python - Django: OperationalError 没有这样的表

python - 在 Amazon Web Services 上开始使用 Django

django - 复制 django 模型实例的所有字段

javascript - 嵌入式媒体未显示在 TinyMCE 的 html 编辑器中

python oauthlib : in escape ValueError "Only unicode objects are escapable"

django - 如何取消应用 django 1.7 中的第一次迁移