Algolia Indexing(인덱싱) 방법

사실상 개인메모입니다 ㅎ

Electron exe 파일 초간단 설치법

거두절미하고 설명합니다.

How to solve CMake error in Flutter

Error message generated after Visual Studio upgrade:

How to save Wikipedia document to local text file with Python?

Python is a programming language used in many fields such as web crawling.

How to show animated SVG icon in PyQt5

So, here we are. The second English post.

How to show basic window in PyQt5

Finally, first English post.

파이참(PyCharm) 프로젝트 파일 안보이는 문제, 설정 창 인터프리터 부분의 nothing to show 문제 해결하기

파이참을 사용하다가 가끔씩 난관에 부딪칠 때가 많은데요.

pip로 requirements.txt를 앳, file... 없이 가지런하게 만드는 방법

pip로 requirements.txt 앳(@), file… 없이 가지런하게 만드는 방법입니다.

CPU 잡아먹는 CompatTelRunner.exe이 하는 일과 비활성화하는 방법

컴퓨터를 하다가 아무것도 안하고 있는데, 갑자기 CPU 돌아가는 소리가 크게 들립니다.

jekyll에서 특수기호 raw string으로 인식시키는 방법

깃헙 페이지 포스트 내용 중 코드를 쓸 시, 중괄호나 밑줄 두개 같이 jekyll에서 특수기호로 취급되는 낱말은 제대로 입력이 되지 않습니다. 그럴 때는 다음과 같이 하시면 됩니다!

<% raw %>
(...)
<% endraw %>

파이참(PyCharm)에서 디렉토리 이름변경 시 java.io.ioexception 오류 해결방법

파이참에서 디렉토리 이름변경 기능을 사용할 시 java.io.ioexception이 뜰 때가 있죠.

파이큐티(PyQt5)에서 윈도우 배경화면 설정하는 방법

파이큐티(PyQt5)에서 윈도우 배경화면 설정하기.. 참 어렵습니다. 윈도우 배경화면 설정하듯이 할 수 없는 것이 현실이죠.

파이썬(Python)에서 메인 모듈 경로에 따른 상대경로 설정하는 방법

이럴 때가 있죠. 메인 모듈에서 특정 경로에 있는 외부 모듈을 부를 때, 그 외부 모듈에서 필요한 css 파일 따위를 못 찾아서 FileNotFoundError를 내뱉는 경우 말입니다.

파이썬(Python) eval 함수 설명, 사용방법

파이썬 eval 함수는 문자열 형식으로 된 코드(예: print(‘123’))를 입력으로 받아 동적으로 계산하여 출력해주는 함수입니다.

파이썬(Python)에서 숫자 사이에 콤마(1,234,567...) 넣기

숫자를 사용자에게 보여주는 프로그램에서는 수치를 확연하게 보여주기 위해 중간중간에 쉼표를 붙이죠.

깃배쉬에서 사용하는 기본적인 명령어(git init, git pull..) 설명

깃배쉬 기본적인 명령어를 알려드리겠습니다. (사실상 첫 포스팅이네요.)

1. 우선 짚고 넘어가야할 용어

저장소(Repository): 줄여서 Repo라고 합니다. 프로젝트(프로그램 작업해놓은 것들)를 저장하는 곳입니다.

위 사진에 있는 pyqt-font-dialog, pyqt-dark.. 등등이 저장소입니다

브랜치(Branch): 브랜치는 프로젝트 작업장 같은 겁니다. 하나의 저장소는 여러 브랜치를 가질 수 있습니다. 브랜치는 하나 이상 꼭 있어야 됩니다! 그래야 작업을 할 수 있으니까요.

List Previous Next

파이썬(Python)에서 메인 모듈 경로에 따른 상대경로 설정하는 방법

Profile ImageJung Gyu Yoon Nov 28, 2021

이럴 때가 있죠. 메인 모듈에서 특정 경로에 있는 외부 모듈을 부를 때, 그 외부 모듈에서 필요한 css 파일 따위를 못 찾아서 FileNotFoundError를 내뱉는 경우 말입니다.

이렇게 되는 이유는 메인 모듈을 중심으로 그 파일의 위치를 탐색하기 때문입니다. 외부 모듈을 중심으로 탐색하는 것이 아니라요.

이럴 때는 우리가 실행하는 메인 모듈의 경로와 외부 모듈의 파일 경로를 상대 경로로 연결시킬 필요가 있겠죠.

그래야만 메인 모듈에서 외부 모듈의 css 파일 등을 로드할 수 있으니까요. 우선 짚고 넘어가야 할 변수와 함수를 설명드리겠습니다.

1. __file__ 변수

이 변수는 말이죠. 이 변수가 포함된 모듈 파일(.py)의 경로를 담고 있는 변수입니다.

2. os.getcwd()

외장 모듈인 os의 함수인 getcwd입니다. getcwd는 메인 모듈이 포함되어 있는 디렉토리를 리턴합니다.

3. os.path.relpath(a, b)

os.path.relpath(a, b)는 b에 대한 a의 상대 경로를 리턴합니다.

C:\Users\tende\anaconda3\envs\projectToTestTheRemoteGitHubPackageMadeByMe\lib\site-packages\pyqt_dark_calculator\main.py
# a
C:\Users\tende\PycharmProjects\projectToTestTheRemoteGitHubPackageMadeByMe 
# b
..\..\anaconda3\envs\projectToTestTheRemoteGitHubPackageMadeByMe\lib\site-packages\pyqt_dark_calculator\main.py
# os.path.relpath(a, b)

이 방법을 다음과 같이 활용할 수 있습니다.

css_file_path = os.path.join(os.path.dirname(os.path.relpath(__file__, os.getcwd())), r'style\button.css')

위 코드는 제가 제작했던 계산기 코드의 일부입니다. 이것을 깃으로 인스톨한 뒤 임포트하여 사용할 사람들을 위해 위와 같은 코드를 작성하였습니다.

외부 모듈에서 필요로 하는 style\button.css를 메인 모듈에서 찾아서 로드할 수 있게 하려고 css_file_path(button.css 파일 경로)를 메인 모듈 기준으로 한 상대 경로로 만들었습니다.

아 참, 위 코드에서 사용되었던 os.path.dirname(filename)은 파일을 인자로 그 파일의 폴더를 리턴해주는 함수입니다. 또 os.path.join(a, b) 함수는 a와 b 경로를 서로 연결시켜줍니다. a는 디렉토리여야 하고, b는 a의 하위에 위치한 파일이어야 합니다!

특정 리소스 파일이 필요한 외부 모듈을 작성할 때 필요한 코드 같습니다. 다른 방법이 있는지 아직 모르겠지만, 일단 저는 저 방식으로 하니까 되더군요.

딱히 뭐라고 포스팅을 끝내야할지 모르겠네요! 그럼!


List Previous Next