source

Python3 프로젝트에서 __pycache_ 폴더 및 .pyc 파일을 제거합니다.

bestscript 2023. 1. 16. 20:07

Python3 프로젝트에서 __pycache_ 폴더 및 .pyc 파일을 제거합니다.

입니까?__pycache__ 및 와 folders.pyc/.pyo비단뱀3는 여러 가 이 글을 을 본 적이 있습니다.pyclean데비안 ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★.파일을 DVS에 푸시하기 전에 프로젝트를 정리하는 간단한 방법을 원합니다.

다음 명령을 사용하여 수동으로 수행할 수 있습니다.

find . | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf

모든 이 제거됩니다..pyc ★★★★★★★★★★★★★★★★★」.pyo및 「」를 참조해 주세요.__pycache__디렉토리는 현재 디렉토리에서 반복적으로 시작됩니다.

MacOS 및 Linux

BSD »find은 GNU find 은 BSD 와 GNUfind.macOS 의 find 에 대응하고 있습니다.BSD의 GNU를 찾습니다.「」를사용한 으로부터, 「」를 합니다.-name-o또는 - 이 함수는 에 넣습니다..bashrc 삭제:

pyclean () {
    find . -type f -name '*.py[co]' -delete -o -type d -name __pycache__ -delete
}

★★★★★★★★★★★★★★★.cd클리닝 해, 「」라고 입력합니다.pyclean.

GNU 검색 전용

이것은 GNU 검색 전용(Linux 등) 솔루션이지만 regex를 사용하면 조금 더 좋다고 생각합니다.

pyclean () {
    find . -regex '^.*\(__pycache__\|\.py[co]\)$' -delete
}

Python 3을 사용하는 모든 플랫폼

에서는, 、 「 」 、 「 」 、 「 」 、 「 Windows 」 have have have have have have have have have have have have have have have have have have have have have have have have have havefind3는 있을 Python 3은 3한 Python 3.4를 갖추고 pathlib★★★★

python3 -Bc "import pathlib; [p.unlink() for p in pathlib.Path('.').rglob('*.py[co]')]"
python3 -Bc "import pathlib; [p.rmdir() for p in pathlib.Path('.').rglob('__pycache__')]"

플래그는 Python에게 쓰지 말라고 말합니다..pyc파일(환경변수 참조)

는 루프에 관한 를 나타내고 만, 「」를 사용하고 있는 는,python -c인 문제입니다 (를 들어) 을 남용할 수도 .__import__:

python3 -Bc "for p in __import__('pathlib').Path('.').rglob('*.py[co]'): p.unlink()"
python3 -Bc "for p in __import__('pathlib').Path('.').rglob('__pycache__'): p.rmdir()"

회답의 비평

가장 큰 대답은 다음과 같습니다.

find . | grep -E "(__pycache__|\.pyc|\.pyo$)" | xargs rm -rf

이 방법은 세 가지 프로세스를 사용하기 때문에 효율이 떨어지는 것 같습니다. find에 따로 할 필요가 grep로 . 마 . . 、 . . . . . . .-delete할 필요가 rm여기서의 코멘트와는 달리, 디렉토리가 아닌 디렉토리는 정규 표현 일치에 의해 비워지는 한 삭제됩니다.

xargs 페이지 man "display" :

find /tmp -depth -name core -type f -delete

디렉토리 /tmp 안 또는 아래에 core라는 이름의 파일을 찾아 삭제하지만 이전 예보다 효율적으로 삭제합니다(rm을 실행하기 위해 fork(2) 및 exec(2)를 사용할 필요가 없고 추가 xargs 프로세스가 필요하지 않기 때문입니다).

내가 직접 pyclean을 pyclean으로 잘못 입력했을 때 답을 찾았다.

    No command 'pycclean' found, did you mean:
     Command 'py3clean' from package 'python3-minimal' (main)
     Command 'pyclean' from package 'python-minimal' (main)
    pycclean: command not found

.py3clean .아주 깔끔하게 정리했어요.

3이므로 Python 3 삭제만 .__pycache__ all " " " ".pyc/.pyo파일이 들어 있습니다.

find . -type d -name __pycache__ -exec rm -r {} \+

또는 그 단순한 형태,

find . -type d -name __pycache__ -delete

(파일은 삭제되었지만 디렉토리는 삭제되지 않았습니다) 그래서 저는 완전성을 위해 둘 다 포함시켰습니다.


디렉토리에서 는, 에 「」를 할 수 .__pycache__폴더는 재귀적입니다.그런 다음 필요한 시점에 무시된 파일을 모두 정리합니다. 더 것 같아서 할 것 요. 왜냐하면 청소할 것이 더 많을 것이기 때문입니다.__pycache__.

프로젝트 디렉터리에 Python 캐시 파일이 들어가지 않도록 하기 위한 영구 솔루션이 필요한 경우:

Python 3.8부터 환경변수를 사용할 수 있습니다.PYTHONPYCACHEPREFIXPython의 캐시 디렉토리를 정의합니다.

Python 문서:

이 설정을 하면 Python은 소스 트리 내의 pycache 디렉토리가 아닌 이 경로의 미러 디렉토리 트리에 .pyc 파일을 씁니다.이는 -X pycache_prefix=PATH 옵션을 지정하는 것과 동일합니다.

요../profileLinux 경경 :

export PYTHONPYCACHEPREFIX="$HOME/.cache/cpython/"

Python을 __pycache__ 디렉토리가 디렉토리의 아래에 표시됩니다.~/.cache/cpython/

내가 사용한 명령어:

find . -type d -name "__pycache__" -exec rm -r {} +

설명:

  1. 모든 것을 .__pycache__츠미야

  2. ★★rm -r {} +각 하다(삭제하다){}, 자리 표시자, 자리 표시자+명령어를 종료합니다).

편집 1:

를 행을 에 사용할 수 .다음 행을 추가한 명령어를 다시 사용하기 위해~/.bashrc 파일

alias rm-pycache='find . -type d -name  "__pycache__" -exec rm -r {} +'

편집 2: VS 코드를 사용하는 경우 삭제할 필요가 없습니다.__pycache__수동으로 조작할 수 있습니다. 밑에 을 '다보다'에 수 요.settings.json그 후 VS 코드는 모든 것을 숨깁니다.__pycache__)

"files.exclude": {
     "**/__pycache__": true
}

도움이 되었으면 좋겠다!!!

은 Python 을 모두 하여 Python 2와 Python 3을 할 수 입니다..pyc .pyo 및 "파일"__pycache__이치노

alias pyclean='find . -name "*.py[co]" -o -name __pycache__ -exec rm -rf {} +'

Mac에서 Python3와 pip3를 실행하고 있습니다.저에게 솔루션은 다음과 같습니다(프로젝트의 루트 디렉토리에 있습니다).

pip3 install pyclean
pyclean .

bash 스크립팅과 관련된 답변이 많기 때문에 소프트웨어에서는 핸드롤 방식보다 테스트된 문제(확립된 python 패키지가 나타내는 것)에 대한 해결책을 선호하는 것이 좋습니다.

PyCharm 사용

Python 컴파일된 파일을 제거하려면

  1. 서서 Project Tool WindowPython 컴파일 파일을 삭제할 프로젝트 또는 디렉토리를 마우스 오른쪽 버튼으로 클릭합니다.

  2. 메뉴에서 [ 를 선택합니다.Clean Python compiled files.

.pyc선택한 디렉토리에 있는 파일은 자동으로 삭제됩니다.

멋진 pip 패키지가 있습니다.

pip install pyclean
pyclean --verbose .

다 했어요.

프로젝트 디렉터리에서 다음을 입력하십시오.

모든 .pyc 파일을 삭제하는 중

find . -path "*/*.pyc" -delete

모든 .po 파일 삭제:

find . -path "*/*.pyo" -delete

마지막으로 '_pycache__'를 모두 삭제하려면 다음과 같이 입력합니다.

find . -path "*/__pycache__" -type d -exec rm -r {} ';'

permission denied 오류가 발생할 경우 위의 모든 명령어 시작 부분에 sudo를 추가합니다.

답변 의 데비안 패키지에 입니다.그 답변에 근거해, 이것은 제 Debian 패키지에 사용한 것입니다.prerm 삭제:

#!/bin/sh
set -e

deb_package='package-name'
python_package='package_name'

if which pyclean >/dev/null 2>&1; then
    py3clean -p $deb_package
else
    dpkg -L $deb_package | grep ${python_package}$ | while read file
    do
        find ${file} -type d -name __pycache__ -exec rm -r {} \+
    done
fi

먼저 디렉토리를 비운 후 삭제합니다.

find ./ -type f -name '*.pyc' -delete -print && find ./ -type d -name '__pycache__' -delete -print

왜그 use use use use use use use use use 를 쓰지 않는 거죠?rm -rf __pycache__? ★★★git add -A하고 ""를 추가합니다.__pycache__/파일로 합니다.syslog는 '무시'를 무시합니다.

최대한 심플하게

#!/bin/bash

project_root_dir=$(pwd)

# 
# function _dcache deletes __pycache__ folders floating around python modules
# 
function _dcache() {
  find "$project_root_dir/inb" -name "__pycache__" > pycache

  while IFS= read -r cache_file; do
    rm -r $cache_file
  done < pycache

  rm pycache
}

이게 제 프로젝트에 사용하는 거예요.한번 시도해 보세요.

터미널로 이동하여 다음과 같이 입력하십시오.

$rm __pycache__

제거될 것입니다.

언급URL : https://stackoverflow.com/questions/28991015/python3-project-remove-pycache-folders-and-pyc-files