2015-06-22 4 views
0

У меня есть psycopg2, установленный на моем компьютере под C:\Python34\Lib\site-packages\psycopg2 Если я использую базу данных postgresql в проекте django за пределами виртуальной среды, я не получаю ошибку. Но когда я хочу передать проект виртуальной env, чтобы я мог развернуть его на героку. Но когда я пытаюсь перенести базу данных, я получаю сообщение об ошибке psycopg2 module нет. Я даже пытался установить его в виртуальном env, используя pip install psycopg2, и даже это не сработало. Вот полная трассировка.Ошибка импорта Django 1.8 psycopg2

(denv) C:\Users\Saket\denv\musicalguru>python manage.py migrate 
    Traceback (most recent call last): 
    File "C:\Users\Saket\denv\lib\site- packages\django\db\backends\postgresql_psycopg2\base.py", line 20, in <module> 
    import psycopg2 as Database 
    File "C:\Users\Saket\denv\lib\site-packages\psycopg2\__init__.py", line 50, in<module>from psycopg2._psycopg import BINARY, NUMBER, STRING, DATETIME, ROWID 
    ImportError: DLL load failed: The specified module could not be found. 

    During handling of the above exception, another exception occurred: 

    Traceback (most recent call last): 
    File "manage.py", line 10, in <module> 
    execute_from_command_line(sys.argv) 
    File "C:\Users\Saket\denv\lib\sitepackages 
    \django\core\management\__init__.py", line 338, in execute_from_command_line 
    utility.execute() 
    File "C:\Users\Saket\denv\lib\site- packages\django\core\management\__init__.py", line 312, in execute 
    django.setup() 
    File "C:\Users\Saket\denv\lib\site-packages\django\__init__.py", line 18, in setup 
    apps.populate(settings.INSTALLED_APPS) 
    File "C:\Users\Saket\denv\lib\site-packages\django\apps\registry.py", line 108, in populate 
    app_config.import_models(all_models) 
    File "C:\Users\Saket\denv\lib\site-packages\django\apps\config.py", line 198,in import_models 
    self.models_module = import_module(models_module_name) 
    File "C:\Users\Saket\denv\lib\importlib\__init__.py", line 109, in import_module 
    return _bootstrap._gcd_import(name[level:], package, level) 
    File "<frozen importlib._bootstrap>", line 2254, in _gcd_import 
    File "<frozen importlib._bootstrap>", line 2237, in _find_and_load 
    File "<frozen importlib._bootstrap>", line 2226, in _find_and_load_unlocked 
    File "<frozen importlib._bootstrap>", line 1200, in _load_unlocked 
    File "<frozen importlib._bootstrap>", line 1129, in _exec 
    File "<frozen importlib._bootstrap>", line 1471, in exec_module 
    File "<frozen importlib._bootstrap>", line 321, in _call_with_frames_removed 
    File "C:\Users\Saket\denv\lib\site- packages\django\contrib\auth\models.py", line 41, in <module> 
    class Permission(models.Model): 
    File "C:\Users\Saket\denv\lib\site-packages\django\db\models\base.py", line 139, in __new__ 
    new_class.add_to_class('_meta', Options(meta, **kwargs)) 
    File "C:\Users\Saket\denv\lib\site-packages\django\db\models\base.py", line 324, in add_to_class 
    value.contribute_to_class(cls, name) 
    File "C:\Users\Saket\denv\lib\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 "C:\Users\Saket\denv\lib\site-packages\django\db\__init__.py", line 36, in __getattr__ 
    return getattr(connections[DEFAULT_DB_ALIAS], item) 
    File "C:\Users\Saket\denv\lib\site-packages\django\db\utils.py", line 240, in__getitem__ 
    backend = load_backend(db['ENGINE']) 
    File "C:\Users\Saket\denv\lib\site-packages\django\db\utils.py", line 111, in 
    load_backend 
    return import_module('%s.base' % backend_name) 
    File "C:\Users\Saket\denv\lib\importlib\__init__.py", line 109, in import_module 
    return _bootstrap._gcd_import(name[level:], package, level) 
    File "<frozen importlib._bootstrap>", line 2254, in _gcd_import 
    File "<frozen importlib._bootstrap>", line 2237, in _find_and_load 
    File "<frozen importlib._bootstrap>", line 2226, in _find_and_load_unlocked 
    File "<frozen importlib._bootstrap>", line 1200, in _load_unlocked 
    File "<frozen importlib._bootstrap>", line 1129, in _exec 
    File "<frozen importlib._bootstrap>", line 1471, in exec_module 
    File "<frozen importlib._bootstrap>", line 321, in _call_with_frames_removed 
    File "C:\Users\Saket\denv\lib\sitepackages\django\db\backends\postgresql_psyc 
    opg2\base.py", line 24, in <module> 
    raise ImproperlyConfigured("Error loading psycopg2 module: %s" % e) 
    django.core.exceptions.ImproperlyConfigured: Error loading psycopg2 module: DLL 
    load failed: The specified module could not be found. 
+0

Это не совсем ответ, но у меня были проблемы с установкой pyscopg2 в прошлом, установка его с другими параметрами обеспечила мне лучшие результаты – Sayse

+0

@Sayse Я пробовал прямое установление. Он работает за пределами виртуального но когда я использую его в виртуальной среде, он не работает. – WutWut

ответ

2

Я использовал инструкции по установке в виртуальном окр из here

А затем добавил каталог в PostgreSQL «бин» на системном пути. Казалось, это трюк.

+0

Django 1.8.3, python 2.7.9, psycopg2 2.6.1, vitrualenv 13.1.0, Win7 SP1. Мое решение этой ошибки - загрузить psycopg2 из приведенной выше ссылки и установить как обычно (c: \ python27 \ libs \ site-packages \ psycopg2). Затем я просто копирую эту папку psycopg2 в virtualenv, то есть имя_файла \ Lib \ site-packages \ psycopg2 –

0

Intalling psycopg2 из источника в virtualenv под окнами боль.

Вместо этого вы можете создать virtualenv, у которых есть доступ к установленным системным пакетам.

virtualenv --system-site-packages env_dir 
+0

Django 1.8.3, python 2.7.9, vitrualenv 13.1.0 Мое решение этой ошибки заключается в установке psycopg2 –