python module not found (경로 참조 문제)
2021. 6. 10. 10:21ㆍ문제들
발생 및 원인
보통 상대경로로 되어있는 코드를 다른경로에서 참조할 때 발생한다
이때 해결방법은 내 경우 두가지이다.
- 적절한 절대경로에서 참조할 것
- 상대경로를 절대경로로 참조하게 할 것
2의 경우로 할 때 구분할 것이 있다.
예시
C:\Users\sypha\Desktop\tts>python fasttts/synth_module.py
현재 working directory
os.getcwd()
C:\Users\sypha\Desktop\tts>
module(python file)이 속한 directory
os.path.dirname(os.path.abspath(__file__))
C:\Users\sypha\Desktop\tts\fasttts
이때 상대경로가 제대로 처리가 안되어있을 경우에는
C:\Users\sypha\Desktop\tts\fasttts\inference\foo.py
를
C:\Users\sypha\Desktop\tts\inference\foo.py
에서 찾게되어 오류가 발생한다.
해결
따라서
mb_melgan_config = AutoConfig.from_pretrained('TensorFlowTTS/examples/multiband_melgan/conf/multiband_melgan.v1.yaml')
와 같은 코드를
import os
module_path = os.path.dirname(os.path.abspath(__file__))
mb_melgan_config = AutoConfig.from_pretrained(os.path.join(module_path,'TensorFlowTTS/examples/multiband_melgan/conf/multiband_melgan.v1.yaml'))
위와같이 절대경로로 치환해서 적용하면 다른 working directory에서 실행해도 오류가 발생하지 않는다.
참조
https://itmining.tistory.com/122
happy하다.
'문제들' 카테고리의 다른 글
mysql port 3306 문제 (0) | 2021.08.20 |
---|---|
CORS error (ajax-xml-servlet/jsp) (0) | 2021.08.03 |
AttributeError: module 'tensorflow' has no attribute 'contrib' (0) | 2021.05.25 |
[JavaScript] forEach is not a function error (0) | 2021.03.26 |
[JDBC] MySQL Error Code 1175 발생시 해결법 (0) | 2021.03.13 |