如果我使用python setup.py bdist_wheel
构建一个包,则生成的包会通过setup(scripts=["script/path"])
扩展setup.py中列出的脚本中的shebangs,以使用我的python可执行文件#!/home/f483/dev/storj/storjnode/env/bin/python
的绝对路径。
这显然是一个问题,因为使用滚轮的任何人都没有这个设置。我使用什么样的shebang似乎没什么区别。
答案 0 :(得分:2)
这通常不会发生。我建议:
升级pip / wheel / setuptools并检查它是否是一个错误。
重新检查当前的shbang是脚本中的通用内容。例如#!/usr/bin/env python
这是我无法重现问题的方法:
paster --no-interactive test
mkdir test/scripts
echo -e "#!/usr/bin/env python\nprint('test')" > test/scripts/s.py
# add scripts/s.py to test/setup.py
cd test; python setup.py bdist_wheel
如果您解压缩该轮,s.py
将有一个无效/占位符shbang #!python
,但在实际安装过程中,它将更改为正确的system / virtualenv路径。
答案 1 :(得分:2)
我终于把它缩小了,发现了问题。
这里是重现问题和解决方案的确切步骤。
在setup.py中添加的脚本中使用有效的shebang。就我而言#!/usr/bin/env python
使用virtualenv -p /usr/bin/python2 env
创建virtualenv并使用source env/bin/activate
激活。
将包含python setup.py install
的软件包安装到virtualenv。
使用python setup.py bdist_wheel
构建方向盘。
问题是在步骤3中将软件包安装到virtualenv。如果没有这样做,则不会扩展shebang。
答案 2 :(得分:0)
使用通用shebang #!python
似乎可以解决这个问题。
编辑:这是incorect!