2016-09-19 13 views
8

Я нахожусь в 64-разрядной версии Windows 10 Pro с использованием Python 3.5.2 (Anaconda 4.1.1). Я загружаю последний мгновенный клиент Oracle 12c instantclient-basic-windows.x64-12.1.0.2.0.zip и instantclient-sdk-windows.x64-12.1.0.2.0.zip в C:\instantclient и положил C:\instantclient на мой PATH. Затем загрузите установщик cx_Oracle-5.2.1-12c.win-amd64-py3.5.exedirectly from PyPI.Распознавание cx_Oracle в PyDev

Теперь я могу запустить запрос Anaconda python и ввести import cx_Oracle и успешно.

>>> import cx_Oracle 
>>> 

К, когда я иду в мою установку Pydev на Eclipse, неон (4,6), то import cx_Oracle линия в моем исходном файле все еще показывает ошибку, как неразрешенного импорта.

  • Я вошел в Windows> Preferences> Pydev> Переводчики> Python интерпретатор и удалил интерпретатор Anaconda (C:\bin\anaconda3\python.exe) и добавить его обратно. Я перезапустил Eclipse, но не повезло.
  • Я выпустил проект > Очистить по всем моим проектам и перезапустил Eclipse. Он по-прежнему показывает import cx_Oracle как нерешенный импорт.

Как я могу получить PyDev, чтобы увидеть мою установку cx_Oracle?

Обратите внимание, что существует много предполагаемых ответов, которые не работают для меня; Я пробовал все предложения, как указано выше.

+0

вы можете сделать 'импорт SYS; print (sys.executable) 'в обеих консолях (anaconda и eclipse), чтобы убедиться, что ваш параметр имеет эффект? –

+0

Они оба говорят 'C: \ bin \ anaconda3 \ python.exe'. (Я понятия не имел, что PyDev имеет интерактивную консоль - очень аккуратно. Спасибо за подсказку.) –

+0

Я тоже не знал, но я догадался, что существует :) Ну, странно. После импорта вы можете распечатать (cx_Oracle .__ file __) ', чтобы узнать, где он находится? –

ответ

4

Вы можете попробовать это (после того, как шаги, которые вы уже отчитываются в вашем вопросе)

  1. Проверьте установку в PyDev в порядке (кроме того, показывающий маркер ошибки для import cx_Oracle)

    import cx_Oracle 
    
    conn = cx_Oracle.connect('hr/[email protected]') 
    cur = conn.cursor() 
    cur.execute('select 13 from dual') 
    for r in cur.fetchall(): 
        print(r) 
    

    Если это работает, и печатает (13,) установка правильная. Вероятно, часть выполнения может также работать. Кроме того, Shift + Нажмите на cx_Oracle, сообщите The definition of ... was found at ....

  2. Перейти к для Windows> Preferences> Pydev> Переводчики> Python интерпретатор и на вкладке принудительному добавить встроенные команды cx_Oracle

    После восстановления проекта, маркеры ошибок на импорт должен уйти. (В небольшой тестовой программе я просто сделал тривиальное редактирование и сохранил.)

для записи:

Eclipse Version: 4.6.0 (Neon) 
PyDev Version: 5.2.0 
Python: 3.5.2 (from a virtualenv) 
+0

On 'conn = cx_Oracle.connect ('hr/hr @ pdborcl')' Я получаю: 'cx_Oracle.DatabaseError: ORA-12154: TNS: не удалось разрешить идентификатор соединения указан –

+0

@GarretWilson: вам нужно будет заменить строку соединения чем-то, что работает в вашей системе. Синтаксис такой же, как строка подключения для SQL * Plus. Формат / @

+0

Но мне не нужно или вы хотите подключиться к базе данных на этой платформе. Я просто хочу, чтобы ссылки отображались без ошибок и могли нажимать на них, чтобы просмотреть источник. –