做的时候
python setup.py sdist bdist_wheel它创建build、dist、packagename.egg-info目录。我想把它们从现在的文件夹里拿出来。
我试过:
--dist-dir=../dist:与sdist一起工作,但packagename.egg-info仍然存在例如,
--bdist-dir=../dist::python setup.py sdist bdist_wheel --dist-dir=../dist -bdist=./dist 2
工作和最后的bdist包是在../dist。但是当前文件夹仍然获得新目录build、dist、packagename.egg-info,这是我不想要的。
问题:如何将所有内容( sdist和bdist_wheel的输出)都放在当前文件夹之外?
当然,我可以使用mv、rm -r等编写脚本,但我想知道是否存在内置解决方案。
发布于 2020-11-22 11:43:04
我又试了一次,用-d,--dist-dir,--bdist-dir,但是我没有办法用一行来做。
恐怕我们(在Windows上)能找到的最短的是:
python setup.py sdist bdist_wheel
rmdir /s /q packagename.egg-info build ..\dist
move dist ..发布于 2021-10-15 11:25:52
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最终调用build和egg_info,但它不会传递您可能指定的任何bdist-dir。不存在全局的“为整个setup.py命令使用这样和这样的工作目录”,因为所有命令都是独立运行的,而且彼此都不知道。
为了将所有临时目录重定向到其他地方,您必须手动指定每个命令并使用其temp目录标志。在我的例子中,对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-base和egg-base不匹配,就会出现一个奇怪的错误,就是没有使用相对路径。)
这足以将所有临时目录放在源文件夹之外。
不幸的是,不太清楚哪个临时目录是哪个命令的结果。您可以使用命令列表(setup.py --help-commands)和一些猜测来确定哪个命令创建了每个临时目录。然后对该命令使用--help查看如何更改其工作目录。
发布于 2021-06-24 09:17:33
你为什么不试试这个命令:
python setup.py egg_info --egg-base /tmp sdist bdist_wheel这将把.egg_info文件夹放在tmp-文件夹中。至少,它将在源文件夹之外。
https://stackoverflow.com/questions/64952572
复制相似问题