Найти - Пользователи
Полная версия: Как решить проблему с установкой пакета cx_Oracle?
Начало » Python для новичков » Как решить проблему с установкой пакета cx_Oracle?
1
drno
Здравствуйте?

на днях переехал на Visual Studio 2017 и python 3.6.1
начал накатывать заново пакеты в частности cx_Oracle.
при попытке наката возникла ошибка

pip install cx_Oracle
Collecting cx_Oracle
Using cached cx_Oracle-5.3.tar.gz
Installing collected packages: cx-Oracle
Running setup.py install for cx-Oracle ... error
Complete output from command "c:\program files\python36\python.exe" -u -c "import setuptools, tokenize;__file__='C:\\Users\\drno\\AppData\\Local\\Temp\\pip-build-jgeivctu\\cx-Oracle\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\drno\AppData\Local\Temp\pip-am47ubdl-record\install-record.txt --single-version-externally-managed --compile:
running install
running build
running build_ext
building 'cx_Oracle' extension
creating build
creating build\temp.win-amd64-3.6-12c
creating build\temp.win-amd64-3.6-12c\Release
creating build\temp.win-amd64-3.6-12c\Release\src
cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -ID:\Databases\Oracle\product\12.2.0\dbhome_1\oci\include -ID:\Databases\Oracle\product\12.2.0\dbhome_1\rdbms\demo "-Ic:\program files\python36\include" "-Ic:\program files\python36\include" /Tcsrc/cx_Oracle.c /Fobuild\temp.win-amd64-3.6-12c\Release\src/cx_Oracle.obj -DBUILD_VERSION=5.3
error: command 'cl.exe' failed: No such file or directory

----------------------------------------
Command ""c:\program files\python36\python.exe" -u -c "import setuptools, tokenize;__file__='C:\\Users\\drno\\AppData\\Local\\Temp\\pip-build-jgeivctu\\cx-Oracle\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\drno\AppData\Local\Temp\pip-am47ubdl-record\install-record.txt --single-version-externally-managed --compile" failed with error code 1 in C:\Users\drno\AppData\Local\Temp\pip-build-jgeivctu\cx-Oracle\

error: command ‘cl.exe’ failed: No such file or directory

Почему возникает эта ошибка и как с ней бороться?
PooH
А компилятор c++ у вас VS установлен? Найти не может именно его. Если установлен, то, наверное, стоит путь к нему в PATH добавить.
drno
компилятор VC 2015 дополнительно установил, пробую снова возвращает теперь другую ошибку

   Using cached cx_Oracle-5.3.tar.gz
Installing collected packages: cx-Oracle
  Running setup.py install for cx-Oracle ... error
Exception:
Traceback (most recent call last):
  File "c:\python36\lib\site-packages\pip\compat\__init__.py", line 73, in console_to_str
    return s.decode(sys.__stdout__.encoding)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe4 in position 100: invalid continuation byte
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "c:\python36\lib\site-packages\pip\basecommand.py", line 215, in main
    status = self.run(options, args)
  File "c:\python36\lib\site-packages\pip\commands\install.py", line 342, in run
    prefix=options.prefix_path,
  File "c:\python36\lib\site-packages\pip\req\req_set.py", line 784, in install
    **kwargs
  File "c:\python36\lib\site-packages\pip\req\req_install.py", line 878, in install
    spinner=spinner,
  File "c:\python36\lib\site-packages\pip\utils\__init__.py", line 676, in call_subprocess
    line = console_to_str(proc.stdout.readline())
  File "c:\python36\lib\site-packages\pip\compat\__init__.py", line 75, in console_to_str
    return s.decode('utf_8')
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe4 in position 100: invalid continuation byte

на windows 2012 с python 3.6.1 x64 все взлетело, на windows 10 python 3.6.1 x64 бьется эта ошибка,
как решить теперь эту проблему?
drno
проблему решил путем деинсталляции Visual Studio 2017
PooH
drno
проблему решил путем деинсталляции Visual Studio 2017

Восемь лет назад я решил 90% проблем путем деинсталляции Windows на своей машине ;)
4kpt_V
PooH
Ага. Согласен. Максимум это “счастье” запускать в Вагранте…
PooH
4kpt_V
Ага. Согласен. Максимум это “счастье” запускать в Вагранте…
И что интересно. На самом деле в винде все есть, и проблемы реально решаемы, но вот усилий на их решение уходит на порядок больше. Вроде же как бы для непрофессиональных пользователей делается, что же все так неудобно получается. Вот первое что вспомнилось, менять PATH длиной в тысячу символов через input в 40 символов шириной. И так везде, все есть, но все через ээээ тернии :)
4kpt_V
PooH
Это называется борьба с системой. На вЫнде на нее тратиться значительно больше времени чем на Лине. Потому как бороться с системой реально приходится постоянно. Может как раз потому, что она заточена под ну очень непрофессиональных пользователей, но факт остается фактом. Если тебе нужно что-то настроить более-менее серьезное, то начинается адищеее….
drno
на windows 10 - после установки и скрипт заработал, НО на windows 2012 при запуске скрипта

 #!/usr/bin/python
import cx_Oracle
ip='192.168.0.2'
port = 1521
SID = 'dboracle'
USERNAME='dboracle'
PASSWORD='pwd'
sql_script="""
SELECT sysdate from dual
"""
dsn_tns = cx_Oracle.makedsn(ip, port, SID)
print (dsn_tns)
conn = cx_Oracle.connect(USERNAME, PASSWORD, dsn_tns)
c = conn.cursor()
c.execute(sql_script)
for row in c:
    print (row[0], row[1])
conn.close()

возвращается ошибка

 C:\Python36\python.exe C:/templates/DB/Oracle/Jobs.py
Traceback (most recent call last):
  File "C:/templates/DB/Oracle/Jobs.py", line 2, in <module>
    import cx_Oracle
ImportError: DLL load failed: %1 is not a valid Win32 application.

как решить эту проблему?
drno
решил проблему, на 2012 виндекроме
Oracle client 12.2 x64 (instantclient-sdk-windows.x64-12.2.0.1.0.zip (1,801,992 bytes) (cksum - 3191784704) and instantclient-basic-windows.x64-12.2.0.1.0.zip (75,062,441 bytes) (cksum - 1462971172) wrote path in Windows OS Environment ORACLE_HOME = C:\DataBases\Oracle\instantclient),

был давным-давно когда-то проинсталлирован oracle 11.0.1 в 32 битах, после его сноса и прописыванию

ORACLE_BASE и доп C:\DataBases\Oracle\instantclient в PATH, интерпретатор pyhton перестал ругаться.

Всем спасибо!!!

Как кстати закрыть вопрос?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB