清除所有__pycache__文件夹和.pyc/。python3项目中的Pyo文件。我见过许多用户建议将pyclean脚本与Debian捆绑在一起,但这并没有删除文件夹。在将文件推送到分布式交换机之前,我想要一个简单的方法来清理项目。


当前回答

尽可能的简单

#!/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
}

这是我在项目中使用的。你可以试试。

其他回答

从项目目录中输入以下命令:

删除所有.pyc文件

找到。* / *路径”。佩克”删除

删除所有.pyo文件:

找到。* / *路径”。民众“删除

最后,要删除所有'__pycache__',输入:

找到。-path "*/__pycache__" -type d -exec rm -r {} ';'

如果遇到permission denied错误,请在上述所有命令的开头添加sudo。

使用PyCharm

删除Python编译文件

在项目工具窗口中,右键单击需要删除Python编译文件的项目或目录。 在上下文菜单上,选择Clean Python已编译文件。

所选目录下的.pyc文件将被静默删除。

如果你需要一个永久的解决方案来让Python缓存文件远离你的项目目录:

从Python 3.8开始,您可以使用环境变量PYTHONPYCACHEPREFIX为Python定义缓存目录。

来自Python文档:

如果设置了该值,Python将在镜像目录树的此路径下写入.pyc文件,而不是在源树的__pycache__目录中。这相当于指定-X pycache_prefix=PATH选项。

例子

如果将下面的行添加到~/。Linux下的profile shell配置文件:

export PYTHONPYCACHEPREFIX="${HOME}/.cache/Python"

Python不会在你的项目目录中创建恼人的__pycache__目录;相反,它会把它们都放在~/.cache/Python下

如果您使用Linux和macOS,可以将这些行添加到~/。Bash_profile / ~/。跨平台shell配置的概要文件(也会根据需要创建文件夹):

# set python cache folder for .pyc files:
#   https://stackoverflow.com/a/57415054
case "${OSTYPE}" in
    darwin*)
        folder="${HOME}/Library/Caches/Python"
        if [[ ! -d "${folder}" ]]; then mkdir -p "${folder}"; fi
        export PYTHONPYCACHEPREFIX="${folder}"
        ;;
    linux-*)
        folder="${HOME}/.cache/Python"
        if [[ ! -d "${folder}" ]]; then mkdir -p "${folder}"; fi
        export PYTHONPYCACHEPREFIX="${folder}"
        ;;
    *)
        printf "WARNING: unsupported operating system '%s'; "`
              `'not setting PYTHONPYCACHEPREFIX' "${OSTYPE}" >&2
        return 1
        ;;
esac

为什么不直接使用rm -rf __pycache__?然后运行git add -A从你的存储库中删除它们,并将__pycache__/添加到你的.gitignore文件中。

当我把pyclean误认为pycclean时,我自己找到了答案:

    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。打扫得很干净。