2014-09-17 4 views
0

Я использую virtualenv, и я пытаюсь настроить postgresql. У меня есть psycopg2, установленный в моей системе, но, похоже, мой виртуальный env не распознает psycopg2. Можно ли просто скопировать файлы psycopg2 в системе в каталог проекта django или это плохой подход?Установка psycopg2 в virtualenv в ubuntu os

Это соответствующая часть моего файла settings.py в моем проекте django.

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.postgresql_psycopg2', 
     'NAME': 'django_db' , 
    'USER': 'myusername' , 
    'PASSWORD': 'mypassword' , 
    'HOST': 'localhost' , 
    'PORT': '' , 

    } 
} 

Когда я бег python manage.py migrate я получаю эту ошибку:

File "manage.py", line 10, in <module> 
     execute_from_command_line(sys.argv) 
     File "/uwsgi-tutorial/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 385, in execute_from_command_line 
     utility.execute() 
     File "/uwsgi-tutorial/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 354, in execute 
     django.setup() 
     File "/uwsgi-tutorial/local/lib/python2.7/site-packages/django/__init__.py", line 21, in setup 
     apps.populate(settings.INSTALLED_APPS) 
     File "/uwsgi-tutorial/local/lib/python2.7/site-packages/django/apps/registry.py", line 108, in populate 
     app_config.import_models(all_models) 
     File "/uwsgi-tutorial/local/lib/python2.7/site-packages/django/apps/config.py", line 197, in import_models 
     self.models_module = import_module(models_module_name) 
     File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module 
     __import__(name) 
     File "/uwsgi-tutorial/local/lib/python2.7/site-packages/django/contrib/auth/models.py", line 40, in <module> 
     class Permission(models.Model): 
     File "/uwsgi-tutorial/local/lib/python2.7/site-packages/django/db/models/base.py", line 125, in __new__ 
     new_class.add_to_class('_meta', Options(meta, **kwargs)) 
     File "/uwsgi-tutorial/local/lib/python2.7/site-packages/django/db/models/base.py", line 300, in add_to_class 
     value.contribute_to_class(cls, name) 
     File "/uwsgi-tutorial/local/lib/python2.7/site-packages/django/db/models/options.py", line 166, in contribute_to_class 
     self.db_table = truncate_name(self.db_table, connection.ops.max_name_length()) 
     File "/uwsgi-tutorial/local/lib/python2.7/site-packages/django/db/__init__.py", line 40, in __getattr__ 
     return getattr(connections[DEFAULT_DB_ALIAS], item) 
     File "/uwsgi-tutorial/local/lib/python2.7/site-packages/django/db/utils.py", line 242, in __getitem__ 
     backend = load_backend(db['ENGINE']) 
     File "/uwsgi-tutorial/local/lib/python2.7/site-packages/django/db/utils.py", line 108, in load_backend 
     return import_module('%s.base' % backend_name) 
     File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module 
     __import__(name) 
     File "/uwsgi-tutorial/local/lib/python2.7/site-packages/django/db/backends/postgresql_psycopg2/base.py", line 27, in <module> 
     raise ImproperlyConfigured("Error loading psycopg2 module: %s" % e) 
    django.core.exceptions.ImproperlyConfigured: Error loading psycopg2 module: No module named psycopg2 

Когда я пип установить psycopg2 в моем виртуальном окр, я получаю следующее сообщение об ошибке:

Exception: 
Traceback (most recent call last): 
    File "/uwsgi-tutorial/local/lib/python2.7/site-packages/pip/basecommand.py", line 122, in main 
    status = self.run(options, args) 
    File "/uwsgi-tutorial/local/lib/python2.7/site-packages/pip/commands/install.py", line 278, in run 
    requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle) 
    File "/uwsgi-tutorial/local/lib/python2.7/site-packages/pip/req.py", line 1153, in prepare_files 
    location = req_to_install.build_location(self.build_dir, not self.is_download) 
    File "/uwsgi-tutorial/local/lib/python2.7/site-packages/pip/req.py", line 218, in build_location 
    _make_build_dir(build_dir) 
    File "/uwsgi-tutorial/local/lib/python2.7/site-packages/pip/req.py", line 1527, in _make_build_dir 
    os.makedirs(build_dir) 
    File "/uwsgi-tutorial/lib/python2.7/os.py", line 157, in makedirs 
    mkdir(name, mode) 
OSError: [Errno 13] Permission denied: '/uwsgi-tutorial/build' 

Storing debug log for failure in /home/user/.pip/pip.log 
+1

Вы пытались reisntall psycopg2 внутри virtualenv с помощью '' 'пункт установить psycopg2'''? –

+0

есть, я. Я получаю эту ошибку: Исключение: Traceback (последний последний звонок): Файл «/uwsgi-tutorial/local/lib/python2.7/site-packages/poc/basecommand.py», строка 122, в основном статус = self.run (options, args) Файл «/uwsgi-tutorial/local/lib/python2.7/site-packages/poc/commands/install.py», строка 278, в исполнении require_set.prepare_files (поиск, force_root_egg_info = self.bundle, bundle = self.bundle) Файл «/uwsgi-tutorial/local/lib/python2.7/site-packages/pip/req.py», строка 1153, в файле prepare_files location = req_to_install.build_location (self.build_dir, а не self.is_download) .... –

+0

Когда я делаю sudo pip install psycopg2, я получаю следующее: Требование уже выполнено (используйте --upgrade для обновления): psycopg2 в /usr/lib/python2.7/dist-packages Очистка ... Когда я пытаюсь мигрировать снова, все та же ошибка. –

ответ

1

Основываясь на комбинация вашего вопроса и один из ваших комментариев, похоже, что когда вы запустили sudo pip install psycopg2, он использовал установку системы, поскольку он ссылался на psycopg2 в/usr/lib /python2.7/dist-packages, который отличается от среды, из которой вы пытаетесь запустить Django.

Ваши права ошибка, которая из среды Джанго, кажется, скорее всего, из-за не использование sudo (между прочим, некоторые C компиляции должна иметь место во время psycopg2 установки и т.д. sudo часто требуется, тогда как это не со многими другими пакетами).

Я бы рекомендовал вам обратиться к virtualenv установки пип-х бинарного явно при выполнении команды sudo.

т.е .: sudo <virtualenv_root>/bin/pip install psycopg2

+0

Большое спасибо; вот и все! –

+0

Несомненно, никаких проблем. – khampson

Смежные вопросы