wheel 包脚本指向本地 python 路径

wheel package script points to local python path

我有一个 Python 包,其中包含一个带有 shebang #!/usr/bin/env python 的脚本。在我构建这个包的轮子之后,我检查了 .whl 中的脚本,新的 shebang 是 #!/path/to/some/virtualenv/bin/python。这是通往 virtualenv 的路径,当我构建轮子时,它甚至不是活动的。

> which python
#!/path/to/active/virtualenv/bin/python

> which wheel
#!/path/to/active/virtualenv/bin/wheel

这中断了我的包的分发。我该如何解决这个问题?

将流程分为两个阶段:

python setup.py build --executable '/usr/bin/env python' &&
python setup.py bdist_wheel [--universal]

build 命令创建 build/ 子目录;当 bdist_* 命令(bdist_eggbdist_wheel)检测到子目录的存在时,它不会使用 运行 build 命令而是使用任何 build放入 build/.

我在我所有的发布脚本中都使用了这种方法。两个例子:Cheetah, SQLObject.