mja*_*ews 6 django python-social-auth django-migrations
将python social auth添加到我安装的应用程序后,即
INSTALLED_APPS = (
...
'social.apps.django_app.default',
...
)
Run Code Online (Sandbox Code Playgroud)
然后尝试一个
python manage.py makemigrations
Run Code Online (Sandbox Code Playgroud)
我得到一个不足为奇的权限错误
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'
Run Code Online (Sandbox Code Playgroud)
有意义的是我无法写入系统范围的软件包安装目录.
有一些明显的方法,比如更改站点包/社交目录的权限.但是,这是这样做的唯一方法,还是我错过了什么?
正如您的问题所述,更改目录的权限将是一个解决方案。然而,另一种方法是使用virtualenv为 Django 项目创建一个隔离的 Python 环境。或者,更方便的是,扩展virtualenvwrapper。
像这样安装后面的:
$ pip install virtualenvwrapper
Run Code Online (Sandbox Code Playgroud)
以下命令为您的项目创建激活 virtualenv:
$ mkvirtualenv django_project
$ workon django_project
Run Code Online (Sandbox Code Playgroud)
之后,您可以自由安装 Django 和 Python Social Auth
$ pip install django
$ pip install python-social-auth
Run Code Online (Sandbox Code Playgroud)
您会注意到所有这些都将安装在$HOME/.virtualenvs/django_project
这是 Python 和 Django 用户中常见的推荐做法。它将解决权限问题,以及在您的所有项目中使用系统的 Python 安装时可能遇到的其他依赖性问题。
请注意,Python Social Auth 实际上需要在 Django 项目中使用之前创建迁移,该迁移将 related_name 添加到“UserSocialAuth”模型中的外键“user”中
| 归档时间: |
|
| 查看次数: |
1424 次 |
| 最近记录: |