Python Cookiecutter Django不';我不能很好地使用PostgreSQL
我一直在尝试使用Cookiecutter Django启动一个项目,但无法正常连接数据库 以下是我所做的:Python Cookiecutter Django不';我不能很好地使用PostgreSQL,python,django,postgresql,python-2.7,python-3.x,Python,Django,Postgresql,Python 2.7,Python 3.x,我一直在尝试使用Cookiecutter Django启动一个项目,但无法正常连接数据库 以下是我所做的: pip安装cookiecutter cookiecutterhttps://github.com/pydanny/cookiecutter-django.git 然后填写所有问题的答案,并按照详细说明运行pip install-r requirements/local.txt 然后,我运行了psql并执行了以下操作: CREATE DATABASE example; CREATE USER
pip安装cookiecutter
cookiecutterhttps://github.com/pydanny/cookiecutter-django.git
然后填写所有问题的答案,并按照详细说明运行pip install-r requirements/local.txt
然后,我运行了psql并执行了以下操作:
CREATE DATABASE example;
CREATE USER example_user WITH PASSWORD 'password';
然后是导出数据库\u URL=postgres://example_user:password@localhost:5432/example
(在psql之外,但在我的virtualenv中,尽管我也在virtualenv之外尝试过)
然后,按照上面链接中的详细说明运行python manage.py migrate
,我得到以下结果:
Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/Users/maxwellskala/.virtualenvs/shred/lib/python2.7/site-packages/django/core/management/__init__.py", line 338, in execute_from_command_line
utility.execute()
File "/Users/maxwellskala/.virtualenvs/shred/lib/python2.7/site-packages/django/core/management/__init__.py", line 312, in execute
django.setup()
File "/Users/maxwellskala/.virtualenvs/shred/lib/python2.7/site-packages/django/__init__.py", line 18, in setup
apps.populate(settings.INSTALLED_APPS)
File "/Users/maxwellskala/.virtualenvs/shred/lib/python2.7/site-packages/django/apps/registry.py", line 108, in populate
app_config.import_models(all_models)
File "/Users/maxwellskala/.virtualenvs/shred/lib/python2.7/site-packages/django/apps/config.py", line 198, in import_models
self.models_module = import_module(models_module_name)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
File "/Users/maxwellskala/.virtualenvs/shred/lib/python2.7/site-packages/django/contrib/auth/models.py", line 41, in <module>
class Permission(models.Model):
File "/Users/maxwellskala/.virtualenvs/shred/lib/python2.7/site-packages/django/db/models/base.py", line 139, in __new__
new_class.add_to_class('_meta', Options(meta, **kwargs))
File "/Users/maxwellskala/.virtualenvs/shred/lib/python2.7/site-packages/django/db/models/base.py", line 324, in add_to_class
value.contribute_to_class(cls, name)
File "/Users/maxwellskala/.virtualenvs/shred/lib/python2.7/site-packages/django/db/models/options.py", line 250, in contribute_to_class
self.db_table = truncate_name(self.db_table, connection.ops.max_name_length())
File "/Users/maxwellskala/.virtualenvs/shred/lib/python2.7/site-packages/django/db/__init__.py", line 36, in __getattr__
return getattr(connections[DEFAULT_DB_ALIAS], item)
File "/Users/maxwellskala/.virtualenvs/shred/lib/python2.7/site-packages/django/db/utils.py", line 240, in __getitem__
backend = load_backend(db['ENGINE'])
File "/Users/maxwellskala/.virtualenvs/shred/lib/python2.7/site-packages/django/db/utils.py", line 111, in load_backend
return import_module('%s.base' % backend_name)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
File "/Users/maxwellskala/.virtualenvs/shred/lib/python2.7/site-packages/django/db/backends/postgresql_psycopg2/base.py", line 24, in <module>
raise ImproperlyConfigured("Error loading psycopg2 module: %s" % e)
django.core.exceptions.ImproperlyConfigured: Error loading psycopg2 module: dlopen(/Users/maxwellskala/.virtualenvs/shred/lib/python2.7/site-packages/psycopg2/_psycopg.so, 2): Symbol not found: _lo_lseek64
Referenced from: /Users/maxwellskala/.virtualenvs/shred/lib/python2.7/site-packages/psycopg2/_psycopg.so
Expected in: /usr/lib/libpq.5.dylib in /Users/maxwellskala/.virtualenvs/shred/lib/python2.7/site-packages/psycopg2/_psycopg.so
回溯(最近一次呼叫最后一次):
文件“manage.py”,第10行,在
从命令行(sys.argv)执行命令
文件“/Users/maxwellskala/.virtualenvs/shred/lib/python2.7/site packages/django/core/management/_init__.py”,第338行,从命令行执行
utility.execute()
文件“/Users/maxwellskala/.virtualenvs/shred/lib/python2.7/site packages/django/core/management/_init__.py”,执行中第312行
django.setup()
文件“/Users/maxwellskala/.virtualenvs/shred/lib/python2.7/site packages/django/_init__.py”,第18行,在安装程序中
应用程序。填充(设置。已安装的应用程序)
文件“/Users/maxwellskala/.virtualenvs/shred/lib/python2.7/site packages/django/apps/registry.py”,第108行,填充
app_config.import_models(所有_models)
文件“/Users/maxwellskala/.virtualenvs/shred/lib/python2.7/site packages/django/apps/config.py”,第198行,在导入模型中
self.models\u module=导入模块(models\u module\u name)
文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/_init__.py”,第37行,在导入模块中
__导入(名称)
文件“/Users/maxwellskala/.virtualenvs/shred/lib/python2.7/site packages/django/contrib/auth/models.py”,第41行,在
类权限(models.Model):
文件“/Users/maxwellskala/.virtualenvs/shred/lib/python2.7/site packages/django/db/models/base.py”,第139行,新__
新建类。将类添加到类(“元”,选项(元,**kwargs))
文件“/Users/maxwellskala/.virtualenvs/shred/lib/python2.7/site packages/django/db/models/base.py”,第324行,添加到类中
值。贡献给类(cls,名称)
文件“/Users/maxwellskala/.virtualenvs/shred/lib/python2.7/site packages/django/db/models/options.py”,第250行,在contribute\u to\u类中
self.db\u table=truncate\u name(self.db\u table,connection.ops.max\u name\u length())
文件“/Users/maxwellskala/.virtualenvs/shred/lib/python2.7/site packages/django/db/_init__.py”,第36行,在__
返回getattr(连接[默认\u DB\u别名],项)
文件“/Users/maxwellskala/.virtualenvs/shred/lib/python2.7/site packages/django/db/utils.py”,第240行,在__
后端=加载\u后端(db['ENGINE'])
文件“/Users/maxwellskala/.virtualenvs/shred/lib/python2.7/site packages/django/db/utils.py”,第111行,在load\u后端
返回导入\u模块(“%s.base”%backend\u名称)
文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/_init__.py”,第37行,在导入模块中
__导入(名称)
文件“/Users/maxwellskala/.virtualenvs/shred/lib/python2.7/site packages/django/db/backends/postgresql\u psycopg2/base.py”,第24行,在
raise配置不正确(“加载psycopg2模块时出错:%s”%e)
django.core.exceptions.impropertlyconfigured:加载psycopg2模块时出错:dlopen(/Users/maxwellskala/.virtualenvs/shred/lib/python2.7/site-packages/psycopg2//psycopg.so,2):未找到符号:\u lo\u lseek64
引用自:/Users/maxwellskala/.virtualenvs/shred/lib/python2.7/site-packages/psycopg2//u psycopg.so
应在/usr/lib/libpq.5.dylib/Users/maxwellskala/.virtualenvs/shred/lib/python2.7/site-packages/psycopg2//u psycopg.so中输入
为了充分披露,我首先尝试遵循找到的指南以及官方文件,但没有成功
在一系列不成功的谷歌搜索之后,我崩溃了,给另一个SO用户发了电子邮件,他建议我跳过所有关于权限之类的东西,“只使用其中的createdb部分”,这就是我上面解释的。我还是会犯同样的错误
我的一个理论是,它与我机器上的多个Python版本有关。见问题。基本上,如果(在我正确的virtualenv中)运行python manage.py migrate
我会得到上面的错误,但是如果运行python 3.4 manage.py migrate
,我会得到
回溯(最近一次呼叫最后一次):
文件“manage.py”,第8行,在
从django.core.management导入从命令行执行
ImportError:没有名为“django”的模块
这也让我感到困惑,因为我显然已经按照上面的pip调用安装了Django。您的主要问题是psycopg2没有加载。要修复:
pip卸载psycopg2
)。检查virtualenv的站点包目录,确保它已消失pip install psycopg2
或通过重新安装本地需求来完成这项工作然后,要创建数据库,请执行
createdb shread
或设置中指定的数据库名称。这应该与您为repo\u name
输入的值匹配您的_psycopg.so库似乎有问题。看,他们说它可能是为不正确的架构而建的。4年后,我发现你的建议仍然有用!