아나콘다 에러 해결하기

 

UPDATA : 2019.11.20

최근 맥북의 OS업데이트와 아나콘다의 버전 업데이트가 비슷한 시기에 있었습니다.

덕분에 정확하게 누구 문제인지는 모르겠지만, 오랜만에 Jupyter notebook을 사용해보려고하니 경로에러가 계속 발생하더군요.

 

그냥 절대경로 잡아서 수행하다가 불편함이 많아 싹 지우고 클린설치했는데 그래도 문제가 있더군요...

 

 

이런식으로 아나콘다 관련 명령을 입력했음에도 실행이 안되는 문제가 있었습니다.

 

 

1. 경로 확인하기

맥에서 Anaconda의 명령어 경로는 이전부터 동일했었습니다.

 

/Users/<사용자명>/anaconda3/bin/ 명령어

 

위와같은 형태였는데, 이번에 다시 확인해보니 이 경로가 달라졌던것을 볼 수 있었습니다.

 

/Users/<사용자명>/opt/anaconda3/bin/명령어

 

위와같이 중간에 'opt'라는 폴더가 지나가는 것을 볼 수 있었습니다.

 

그럼 환경변수는 잘 되어있는가?

 

 

왠지 모르지만, 아나콘다의 경로가 변함없는 것을 볼 수 있었습니다.

 

그럼 왜 이렇게 됬을까?

 

 

 

 

2. ~/.bash_profile 확인하기

 

리눅스 시스템에서 부팅과 함께 수행할 명령을 적어두는 bash_profile을 확인해보았습니다.

 

흠... 잘 보시면, 중간에 < #added by Anaconda3 2019.10 installer > 라는 부분이 있습니다. 해당 부분을 보게되면 경로설정 영역에 분명하게 '/opt/' 라는 부분이 존재합니다.

 

즉, opt폴더가 경로상에 존재한다는 것을 anaconda3를 설치하는 과정에서 시스템에게 알려주려했다는 것을 볼 수 있습니다.

 

하지만, 여기서 문제가 있죠...

 

일반적인 리눅스라면 문제가 없었겠지만, 저의 PC는 맥...

 

부팅시 bash_profile을 확인하는 것이 아니라, zshrc파일을 확인하게됩니다...

 

 

 

3. ~/.zshrc 파일 확인

 

실행결과 이전에 옛날 아나콘다의 환경변수를 설정하는 부분만 존재하고 새롭게 추가된 'opt'폴더에 대한 명시가 없는 것을 볼 수 있습니다.

 

따라서 기존의 것은 제거하고, bash_profile에서 추가되어있던 opt관련 부분을 복사하여 여기에 추가해주겠습니다.

 

아래는 추가한 모습입니다.

 

변경한 모습

 

이 후 확실한 확인을 위해 재부팅을 해주었습니다.

 

부팅 후 환경변수를 확인해보면 아래와같이 잘 적용된 것을 볼 수 있습니다.

 

 

환경변수도 잘 들어갔고 conda와 같은 명령어도 아래와같이 정상적으로 실행되는 것을 볼 수 있었습니다.

 

 

 

 

문제해결~~~~~!

  1. 2020.02.06 03:32

    비밀댓글입니다

  2. cmc 2020.03.16 17:05

    안녕하세요 이 문제로 잘 안되서 맥 사자마자 기가 팍 죽은 맥린이 입니다 ㅜㅜ
    cat ~/.zshrc 라고 쳐봤는데 no such file or directory가 나와서요
    cat 자체가 하나의 명령어인 걸까요? 초보라서 터미널에 어떤걸 쳐야하는지 헷갈리다 보니 따라하고 싶은데 마음처럼 잘 안되네요 ㅜㅠ

  3. vivlavie 2020.04.26 17:29

    올려주신 글 덕분에 겨우 mac에서 anaconda 2.7 package를 사용할 수 있게되었네요. 감사합니다.

  4. zshrc 2020.07.01 19:09

    안녕하세요!
    맥에 아나콘다 깔았는데, zshrc 파일이 안보여서요.. 어디 가야 저 파일을 볼 수 있을까요?

    • 뒹굴뒹굴 YoungQ 2020.07.24 09:57 신고

      ~/. zshrc

      파일은 계정의 홈디렉토리에 숨김파일로 존재합니다.
      때문에 위 게시물과 같이 그냥 물결 뒤에 위와같이 입력하면 보실 수 있습니다.

1. 가상환경 생성

conda create -n [가상환경이름] python=[버전]

 

ex) conda create -n datasci python=3.7

 

 

2. 가상환경 목록 확인

conda info --envs

 

3. 가상환경 실행

conda activate [가상환경이름]

 

ex) conda activate datasci

 

 

4. 가상환경 해제

conda deactivate

 

 

5. 가상환경 제거

conda remove -n [가상환경이름] --all

 

ex) conda remove -n datasci --all

구글 API에 올라와있는 샘플코드를 응용하여 만들었습니다.

 

Python 코드

 

from google.cloud import texttospeech

client = texttospeech.TextToSpeechClient()

voice_eng = texttospeech.types.VoiceSelectionParams(
    language_code='en-US',
    ssml_gender=texttospeech.enums.SsmlVoiceGender.NEUTRAL)

voice_kor = texttospeech.types.VoiceSelectionParams(
    language_code='ko-KR',
    ssml_gender=texttospeech.enums.SsmlVoiceGender.NEUTRAL)

audio_config = texttospeech.types.AudioConfig(
    audio_encoding=texttospeech.enums.AudioEncoding.MP3)

-> 기본적으로 음성변화 기능을 불러오는 코드입니다.

 

def exchange_eng(input_text): # 영어를 음성으로 변형하기
    synthesis_input = texttospeech.types.SynthesisInput(text=input_text)
    response = client.synthesize_speech(synthesis_input, voice_eng, audio_config)
    return response.audio_content

def exchange_kor(input_text): # 한국어를 음성으로 변형하기
    synthesis_input = texttospeech.types.SynthesisInput(text=input_text)
    response = client.synthesize_speech(synthesis_input, voice_kor, audio_config)
    return response.audio_content

-> 텍스트를 음성으로 변형시키는 함수입니다.

 

def makeFile(textList, *adder):
    if len(adder) == 0: adder = 'output'
    else : adder = adder[0]
        
    for i, text in enumerate(textList):
        if type(text) == type(list()):
            with open('/Users/youngQ/tts_output/'+str(adder)+str(i)+'_eng.mp3', 'wb') as out:
                out.write(exchange_eng(text[0]))
            with open('/Users/youngQ/tts_output/'+str(adder)+str(i)+'_kor.mp3', 'wb') as out:
                out.write(exchange_kor(text[1]))
        else:
            with open('/Users/youngQ/tts_output/'+str(adder)+str(i)+'.mp3', 'wb') as out:
                out.write(exchange_eng(text))

-> 음성으로 변환된 파일을 저장하는 코드입니다.

 

 

다음은 위의 코드를 실행하는 부분입니다.

 : makeFile( 변환할 텍스트 리스트, 저장할 파일명 ) 입니다.

 

1) 단순 영어를 음성으로 변형시키는 경우

location = ['in front of a fountain', 'in a clothing store', 'at a construction site', 'at a plaza',
           'in a parking lot', 'in a shopping district', 'at a crosswalk']
makeFile(location, 'location')

2) [영어 + 한국어] 텍스트를 음성으로 변형하는 경우

behavior = [['he is sitting arm in arm', '그는 팔짱을끼고 앉아있다.'], 'they are holding hands', 
            ['he is holding up someting', '그는 무언가를 들고있다.'],
            ['they are smiling at each other', '그들을 서로를 보며 웃고있다.'],
            ['he is legs crossed', '그는 다리를 꼬고있다.'], 
            ['A man is raising his hand', '한 남자가 손을 들고있다.'],
            ['he is taking a walk', '그는 산책을 하고있다.'],
            ['A man is crossing a street','한 남자가 길을 건너고있다.'],
            ['A man is working at a construction site','한 남자가 건설현장에서 작업하고있다.'],
            ['They are having a meeting at work', '그들은 직장에서 회의중이다.'],
            ['They are looking at something', '그들은 무언가를 보고있다.'],
            ]
makeFile(behavior, 'behavior')

 

실행결과

위에 makeFile 뒤에 오는 인자가 파일명에 해당합니다.

 

구글 API로 문자를 음성으로

구글 API 등록부터 입력한 문자를 음성으로 저장하는 방법을 정리합니다.

Python코드는 다음 페이지에 있습니다.

 

구글 API 관리 : https://console.developers.google.com

 

Google Cloud Platform

하나의 계정으로 모든 Google 서비스를 Google Cloud Platform을 사용하려면 로그인하세요.

accounts.google.com

 

Cloud Text-to-Speech API

사용할 API의 이름입니다.

 

1) 프로젝트 생성하기

현재 tts proj라는 기존의 프로젝트가 있는 상태입니다.

따라서 새로 프로젝트를 생성해주겠습니다.(프로젝트 생성방법은 큰 차이가 없습니다.)

프로젝트 생성
[새 프로젝트] 클릭
프로젝트 이름 설정 후 만들기

위와같은 순서로 진행됩니다.

프로젝트 이름은 본인이 사용할 API들을 관리하는 하나의 큰 틀이라고 생각하시면 좋습니다.

 

2) API 설정하기

상단에 프로젝트명이 바뀐것을 볼 수 있습니다.

위와같이 프로젝트가 생성이되면, [EABLE APIS AND SERVICES]를 클릭하여 프로젝트에 API를 새로 추가하겠습니다.

API 검색

사용할 API의 이름을 검색하고 선택합니다.

[사용 설정] 클릭

 

 

API 사용 설정 버튼을 클릭하시면 결제방법을 등록하시라는 창이 나올 수 있습니다.

처음 사용하시는 중이라면 무료 크리딧이 주어집니다.

또한, 일정 사용량까지는 무료로 제공되기 때문에 제품을 위한 API가 아니고 혼자 사용하시는 것이라면 큰 결제가 발생하지는 않습니다.

API 가격표

 

3) 사용자 인증정보 만들기

 

위와같이 API사용중지라는 버튼이 활성화된 상태라면, API설정이 완료된 상태입니다.(클릭하지마세요!!!)

 

우측에 [사용자 인증 정보 만들기]를 클릭하세요.

 

인증정보 설정

 

사용할 API를 선택하세요.

 

적당히 선택하시면됩니다.

 

키 생성 완료

 

키 생성완료가되면 위의 파일이 PC에 저장됩니다.

 

이제 환경변수만 설정과 SDK설치만하면됩니다!!

 

 

거의 다 왔습니다!!

 

 

4) 환경변수 설정하기

API문서를 참고하였습니다.

 

OS에 따라서 설정방법이 다르기 때문에 아래를 참고하셔서 설정해주시면 감사하겠습니다.

 

 

 

[OSX에서 환경변수 설정 후 확인한 내용입니다.]

환경변수 확인

 

SDK 설치하기

https://cloud.google.com/sdk/docs/

 

Google Cloud SDK 문서  |  Cloud SDK  |  Google Cloud

Google Cloud SDK 문서 Google Cloud SDK는 Google Cloud Platform에서 호스팅되는 리소스와 애플리케이션을 관리하는 데 사용할 수 있는 도구 집합으로, 여기에는 gcloud, gsutil, bq 명령줄 도구가 포함됩니다. cloud 명령줄 도구는 Cloud SDK와 함께 다운로드됩니다. gcloud 명령줄 도구 개요에서 gcloud CLI에 대한 종합 가이드를 참조할 수 있습니다. 또한 gcloud CLI 참조에는 g

cloud.google.com

구글은 보안을 위해서인지 API키 파일을 통해 직접 API서버에 접속하지 않고 SDK를 통해서 API를 관리합니다.

 

위의 링크에서 해당 프로그램을 설치하시면됩니다.

 

 

 

SDK까지 설치가 끝나시면 이제 프로그램코드 부분으로 넘어갑니다.

 

이어지는 다음 페이지에 해당 코드가 있습니다.

#1. str.startsWith(searchString[, position])


매개변수섹션

searchString
문자열의 시작 지점에서 탐색할 문자열
position Optional
searchString을 탐색할 위치. 기본값 0.

반환 값섹션

문자열이 검색 문자열로 시작하면 true, 아니면 false.


< From : https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith >



+ Recent posts