7 리눅스에 python 의존성 경로 설정하기(export PYTHONPATH)

|

views

git에서 리눅스로 python 크롤링 프로젝트를 clone해왔다.

git 에서 리눅스로 python project 가져오는 방법

python-crawler에서 __main__.py를 실행하면 __result__/파일이름.csv로 저장되도록 코드를 작성했다.

__main__.py를 실행하기 위해서는 가상환경을 실행하고 다음 명령어를 치면 된다.

(venv) [root@localhost python-crawler]# python3 __main__.py


만약 프로젝트 밖에서 실행한다면,

(venv) [root@localhost python-projects]# python python-crawler

(자동으로 그 프로젝트의 __main__.py 실행)

오류가 발생한다. ( __results__ 디렉토리를 찾을 수 없음)


그 이유는, __main__.py에서 크롤링 데이터 저장 경로를

table.to_csv('__results__/nene.csv', encoding='utf-8', mode='w', index=0)로 설정했기 때문에, 프로젝트 밖에서는 실행할 수 없다. 이 경로를 절대 경로로 바꿔 주어야 한다.

python 모듈의 절대 경로 찾는 법

print(os.path.abspath(__file__))

<출력>
D:\dowork\PycharmProjects\python_crawler\__main__.py

우리는 __main__.py의 상위 경로를 찾은 뒤 __result__ 디렉토리를 찾아주어야 한다.


python 상위 디렉토리 경로 찾는 법

BASE_DIR = os.path.dirname(os.path.abspath(__file__))

<출력> D:\dowork\PycharmProjects\python_crawler

위의 크롤링 데이터 저장 경로를 다음과 같이 절대 경로로 변경하면 된다.

# 모듈의 절대위치 구하기(다른 환경에서 실행할 때)
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
RESULT_DIR = f'{BASE_DIR}/__results__'
table.to_csv(f'{RESULT_DIR}/nene.csv', encoding='utf-8', mode='w', index=0)

하지만, 저장 파일을 프로젝트 내부에 두지 않고, 리눅스 디렉토리에 넣고 싶어 다음 경로로 변경한뒤 리눅스의 root/밑에 crawling-results 디렉토리를 만들어주어 크롤링 데이터를 저장했다.

table.to_csv('/root/crawling-results/nene.csv', encoding='utf-8', mode='w', index=0) –> /root경로에 crawling-results 디렉토리 만들면 된다!



linux에서 venv 실행을 하지 않고 python apllication 실행하기

[1] PYTHONPATH=’application 의존성 경로’ 설정

1, git clone https://github.com/jungeunlee95/python-crawler.git

2, ` pip3 install -r python_crawler/requirements.txt –target=python_crawler/packages`

3, export PYTHONPATH='/root/python-projects/python_crawler/packages'

3, python3 python_crawler : 실행 성공!

views


[2] PYTHONPATH=’application 의존성 경로’ 설정

1, git clone https://github.com/jungeunlee95/python-crawler.git

2, ` pip3 install -r python-crawler/requirements.txt –target=python-crawler`

python 모듈을 프로젝트 바로 밑에 설치해주면, 굳이 PATH를 설정하지 않아도 된다.

3, python3 python-crawler : 실행 성공

views


[3] 압축

1, git clone https://github.com/jungeunlee95/python-crawler.git

2, ` pip3 install -r python-crawler/requirements.txt –target=python-crawler`

3, python3 -m zipapp python-crawler

4, python3 python-crawler.pyz : 압축파일 실행 시 오류가 생김

압축했을 때, numpy 오류가 생긴다.

views

프로젝트의 pandas와 numpy관련 코드를 주석처리 하고 다시 project를 pull 받으면 오류가 사라진다.. 이 이유는 더 찾아봐야 할 것 같다.


[4] 실행 가능 파일로 packing

1, git clone https://github.com/jungeunlee95/python-crawler.git

2, ` pip3 install -r python-crawler/requirements.txt –target=python-crawler`

3, python3 -m zipapp -p "/cafe24/python3.7/bin/python3" python-crawler

4, python3 python-crawler.pyz