Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Cookiecutter Django不';我不能很好地使用PostgreSQL_Python_Django_Postgresql_Python 2.7_Python 3.x - Fatal编程技术网

Python Cookiecutter Django不';我不能很好地使用PostgreSQL

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

我一直在尝试使用Cookiecutter Django启动一个项目,但无法正常连接数据库

以下是我所做的:

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没有加载。要修复:

  • 确保您的virtualenv处于活动状态
  • 从virtualenv卸载psycopg2(
    pip卸载psycopg2
    )。检查virtualenv的站点包目录,确保它已消失
  • 将psycopg2重新安装到您的virtualenv中。因为看起来您是在OSX上,所以您应该能够通过
    pip install psycopg2
    或通过重新安装本地需求来完成这项工作

  • 然后,要创建数据库,请执行
    createdb shread
    或设置中指定的数据库名称。这应该与您为
    repo\u name

    输入的值匹配您的_psycopg.so库似乎有问题。看,他们说它可能是为不正确的架构而建的。4年后,我发现你的建议仍然有用!