【问题标题】:Output directories for python setup.py sdist bdist_wheelpython setup.py sdist bdist_wheel 的输出目录
【发布时间】:2021-03-05 05:35:25
【问题描述】:

什么时候做

python setup.py sdist bdist_wheel

它创建builddistpackagename.egg-info 目录。我想将它们从当前文件夹中删除。

我试过了:

  • --dist-dir=../dist:与sdist 一起使用,但packagename.egg-info 仍然存在

  • --bdist-dir=../dist:例如:

       python setup.py sdist bdist_wheel --dist-dir=../dist  --bdist-dir=../dist2
    

    有效,最终的 bdist 包位于 ../dist。但是当前文件夹仍然有新目录builddistpackagename.egg-info,这是我不想要的。

问题:如何将所有内容(sdist 和 bdist_wheel 的输出)放在当前文件夹之外?

当然,我可以用mvrm -r 等编写脚本,但我想知道是否存在内置解决方案。

【问题讨论】:

标签: python package setuptools sdist


【解决方案1】:

我用-d--dist-dir--bdist-dir 再次尝试了一段时间,但我发现无法在一行中完成。

恐怕我们能找到的最短(在 Windows 上)是:

python setup.py sdist bdist_wheel
rmdir /s /q packagename.egg-info build ..\dist
move dist ..

【讨论】:

    【解决方案2】:

    你为什么不试试这个命令:

    python setup.py egg_info --egg-base /tmp sdist bdist_wheel
    

    这会将 .egg_info 文件夹放入 tmp 文件夹中。 至少,它会在您的源文件夹之外。

    【讨论】:

      【解决方案3】:

      setup.py 接受 一系列 命令(setup.py --help 显示用法:setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...])。至关重要的是,每个命令都是具有自己的命令行选项的自己的脚本(这就是为什么setup.py bdist_wheel --help 显示的选项与setup.py sdist --help 不同的原因)。

      这里的微妙之处在于,某些命令会在后台生成对其他命令的调用,但不足以将通用标志传递给生成的命令。例如,bdist_wheel 最终会调用buildegg_info,但它确实传递您可以指定的任何bdist-dir。没有全局“为整个 setup.py 命令使用某某工作目录”,因为所有命令都是独立运行且彼此不了解。

      为了将所有临时目录重定向到其他地方,您必须手动指定每个命令并使用其临时目录标志。在我的情况下,bdist_wheel 的完整调用是:

        python setup.py ^
          build --build-base \path\to\working\dir ^
          egg_info --egg-base \path\to\working\dir ^
          bdist_wheel --dist-dir \path\to\final\output\dir
      

      (旁注,我发现如果 build-baseegg-base 不匹配,我会收到一个关于未使用相对路径的奇怪错误。)

      这足以将所有临时目录放在源文件夹之外。

      不幸的是,哪个临时目录是哪个命令的结果并不是很明显。您可以使用命令列表 (setup.py --help-commands) 和一些猜测来确定哪个命令创建了每个临时目录。然后在该命令上使用--help 以查看如何更改其工作目录。

      【讨论】:

        猜你喜欢
        • 2020-08-02
        • 1970-01-01
        • 2016-07-27
        • 2014-12-20
        • 2023-03-12
        • 2015-07-30
        • 1970-01-01
        • 2011-04-16
        • 1970-01-01
        相关资源
        最近更新 更多