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


当前回答

非常感谢其他的答案,基于他们,这是我用于我的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

其他回答

非常感谢其他的答案,基于他们,这是我用于我的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

我在Mac上运行Python3和pip3。对我来说,解决方案如下 (在我项目的根目录下):

pip3 install pyclean
pyclean .

我想强调的是,因为我看到许多答案都涉及bash脚本,所以软件中的最佳实践是倾向于使用经过测试的问题解决方案(这正是已建立的python包所代表的),而不是手卷方法。

使用PyCharm

删除Python编译文件

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

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

因为这是一个Python 3项目,你只需要删除__pycache__目录——所有的.pyc/。Pyo文件在其中。

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

或者更简单的形式,

find . -type d -name __pycache__ -delete

由于某些原因,这对我不起作用(文件被删除了,但目录没有),所以为了完整起见,我将两者都包括在内。


或者,如果你在一个受修订控制的目录中执行此操作,你可以告诉RCS递归忽略__pycache__文件夹。然后,在需要的时候,清理所有被忽略的文件。这可能会更方便,因为可能会有比__pycache__更多的东西要清理。

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