Trash

conda error execute(698)

i독 2020. 12. 14. 11:22

 

 

The error is summarized below.

 

idogs.tistory.com/30?category=950478

 

ERROR conda.core.link:\_execute(698) : qt problem

ERROR conda.core.link:\_execute(698): An error occurred while installing package 'conda-forge::qt-5.12.9-hb2cf2c5\_0'. Rolling back transaction: done LinkError: post-link script failed for package c..

idogs.tistory.com


 

아나콘다 가상환경에서 jupyter를 설치하는 도중에 발생conda.core.link:\_execute(698):An error occurred while installing package 'defaults::qt-5.9.7-vc14h73c81de_0'. Rolling back transactionjupyter 안의 package(qt-5.97) 설치 실패.

qt-5.9.7 때문에 트랜잭션이 롤백 발생 (qt = PyQt)
PyQt는 Python 코드를 연결하여 GUI프로그램을 만들어 주는 프레임워크라고 한다

> anaconda repository에 있는 jupeter의 설치가 실패했으니 conda channel을 바꿔서 해보기로 함

> conda-forge 를 통해 이전과 같이 jupeter설치 하려했으나, 차세대 인터페이스인 jupyterlab을 설치하기 로 함

* jupyterlab에 notebook 포함되어 있음.

conda install -c conda-forge jupyterlab

해결 (빵긋)

 

ERROR conda.core.link:\_execute(698): An error occurred while installing package 'conda-forge::qt-5.12.9-hb2cf2c5\_0'. Rolling back transaction: done

이번엔 matplotlib을 설치하고 Executing transaction에서 걸렸다. 대체 무슨 일인지 원.

저 의존성 패키지 중 qt가 너무 거슬리는데 재를 어떻게 해야할까.

jupyter안의 Pakaga로 가지고 있기에 충돌이 나는걸까? 그럴리가. 의존성이 다를텐데.

잰 qt version **, 잰 qt version ** 사용할텐데..

conda cloud를 확인해 보니 base 파일도 따로 있었기에 우선 base파일만 설치하여 넘겼다.

하지만 qt 문제는 꼭 해결하고 싶은데 방안이 무엇이 있을까...

qt는 python에 종속되어 있는데 python version이 잘못된 것일까?

현재 3.6버전을 사용하고 있는데, matplotlib의 버전을 낮춰서 install 해보자 (2.2.5)

아.. 의존성 패키지는 달라지는게 없구나...

matplotlib.org에 접속해서 document를 살펴보았다.

https://matplotlib.org/users/installing.html

파이썬 3.6은 문제 없었네. 다음은 문서내의 링크를 타서 PyQt5를 살펴보았다.

별 이야기가 없더라.

pyqt5를 최신버전으로 올려볼려 했지만 공식적인 버전을 conda에서 못찾았다.

pip 을 사용해서 최신 버전을 설치하였다.

근데 pip을 사용해서 설치하면 conda prompt의 가상환경은 지켜주는것일까?

상관없었다. 가상환경 Dir 내부에 잘 설치되었다. 허나 그럼에도 conda install 시에 qt-5.12 blabla는 피해갈 수 없었다.

지금 든 생각인데 접근을 잘못한게 아닌가? 오류메시지를 다시한번 확인해보았다.

LinkError: post-link script failed for package conda-forge::qt-5.12.9-hb2cf2c5_0 location of failed script: C:\Users\blabla\anaconda3\envs\env_test\Scripts\.qt-post-link.bat

github.com/ContinuumIO/anaconda-issues

이쪽에서 한번 쭈욱 closed된 issue 상황을 읽어보았다. OS가 대소문자를 구별안하는 환경은 conda를 사용할 수 없다고 하거나 permission을 확인하라든지 별 소득이 없었다.

나만 이러는게 아닌데... 개발자가 재현이 안된다고 하네...

중간에 포스팅하다가 날라갔다. 왜 난 자동저장 기능이 활성화안되어 있는거지?

 

> 우선 .qt-post-link.bat 파일을 찾았다. 이녀석 env 폴더내에 있는게 아니라 상위폴더에 있었다.

 

> install에서 나타나는 script error의 글자가 깨져서 출력되어서 CMD에서 chcp 의 언어값을 변경하였다.

> 따로 cmd 창을 켜서 system32폴더에 접속해서 변경했는데 안되길래 conda prompt에서 직접 System32로 경로변경하여 코드를 UTF-8 (65001)로 변경하였다.

> 여기서 뭔가 싸함을 느꼈다. 니가 왜 chcp를 요구해. 하여간 그건 둘째치고 난 어째서 chcp를 직접 system32폴더로 들어가서 건들였지? 환경변수에서 Path를 확인하였다.

> 변수가 없다. 심지어 가장 기본인 system32도 없다. 생각해보니깐 이전에 .net framework 로 작업할 때 충돌을 보여서 화가나서 밀어버린 것이 떠올랐다.

 

> 살며시 system32 경로를 path에 올리고 다시 install 해보았다.

 

효과는 굉장했다!

 

 

뭐 많이 배웠으니 된거지. 포스팅이 날라가서 그런데 중간에 qt가 C++기반인걸 보고 C++ compiler도 다시 설치했다 ㅠ

conda가 문제가 아니라 내가, 내 컴이 문제였다. 함부로 타인을 의심하지 말자.

 

+ conda에서 가상환경 만들때 -v flag 활성화 시켜주면 debug 모드 처럼 더 많은 정보를 알려준다.