清除所有__pycache__文件夹和.pyc/。python3项目中的Pyo文件。我见过许多用户建议将pyclean脚本与Debian捆绑在一起,但这并没有删除文件夹。在将文件推送到分布式交换机之前,我想要一个简单的方法来清理项目。
当前回答
如果你需要一个永久的解决方案来让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
其他回答
如果你需要一个永久的解决方案来让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
因为这是一个Python 3项目,你只需要删除__pycache__目录——所有的.pyc/。Pyo文件在其中。
find . -type d -name __pycache__ -exec rm -r {} \+
或者更简单的形式,
find . -type d -name __pycache__ -delete
由于某些原因,这对我不起作用(文件被删除了,但目录没有),所以为了完整起见,我将两者都包括在内。
或者,如果你在一个受修订控制的目录中执行此操作,你可以告诉RCS递归忽略__pycache__文件夹。然后,在需要的时候,清理所有被忽略的文件。这可能会更方便,因为可能会有比__pycache__更多的东西要清理。
有一个不错的pip包。
pip install pyclean
pyclean --verbose .
done
使用PyCharm
删除Python编译文件
在项目工具窗口中,右键单击需要删除Python编译文件的项目或目录。 在上下文菜单上,选择Clean Python已编译文件。
所选目录下的.pyc文件将被静默删除。
我使用的命令:
找到。-type d -name "__pycache__" -exec rm -r {} +
解释道:
首先查找当前目录下的所有__pycache__文件夹。 执行rm -r{} +删除上述步骤中的每个文件夹({}表示占位符,+表示结束命令)
编辑1:
我使用的是Linux,为了重用下面添加到~/的命令行。bashrc文件(
alias rm-pycache='find . -type d -name "__pycache__" -exec rm -r {} +'
编辑2: 如果你使用VS Code,你不需要手动删除__pycache__。 您可以将下面的代码片段添加到设置中。json文件。之后,VS Code会为你隐藏所有__pycache__文件夹
"files.exclude": {
"**/__pycache__": true
}
希望能有所帮助!!
推荐文章
- 如何在Python中进行热编码?
- 如何嵌入HTML到IPython输出?
- 在Python生成器上使用“send”函数的目的是什么?
- 是否可以将已编译的.pyc文件反编译为.py文件?
- Django模型表单对象的自动创建日期
- 在Python中包装长行
- 如何计算两个时间串之间的时间间隔
- 我如何才能找到一个Python函数的参数的数量?
- 您可以使用生成器函数来做什么?
- 将Python诗歌与Docker集成
- 提取和保存视频帧
- 使用请求包时出现SSL InsecurePlatform错误
- 如何检索Pandas数据帧中的列数?
- except:和except的区别:
- 错误:“字典更新序列元素#0的长度为1;2是必需的”