(Python的)shebang太长

3
安装Python脚本时,就像在这篇文章中讨论的那样,shebang会被替换。

问题是,在我的情况下,它被替换为

#!/ssoft/spack/paien/v2/opt/spack/linux-rhel7-x86_E5v2_IntelIB/gcc-7.3.0/python-3.6.5-5yxsy6j5miw26wxpzrtync5gnhtsv5pt/bin/python3

这似乎对操作系统来说太长了,无法处理:

bad interpreter: /ssoft/spack/paien/v2/opt/spack/linux-rhel7-x86_E5v2_IntelIB/g: no such file or directory

我该如何解决这个问题? (除了覆盖setuptools默认的脚本复制程序。)

2
相关问题 https://github.com/pypa/virtualenv/issues/596 。 - Giacomo Alzetta
1
这里是一个SO问题,询问大小限制,但我不认为它回答了你的问题。 - syntonym
@GiacomoAlzetta 谢谢,问题确实与此有关,但我认为它还没有被解决。有一些解决方法建议,但似乎对我不起作用。或者是我漏掉了什么? - Tom de Geus
那么...你没有得到整个东西 - Will Vousden
@WillVousden 脚本中写入的 shebang 是完整路径,但对于操作系统来说太长了。除此之外,所写的路径极度依赖于已加载的环境(使用 spack),即不是非常健壮的。 - Tom de Geus
1个回答

1

这是操作系统的限制,所以您没有其他选择,只能限制shebang的长度。

安装到一个路径较短的目录中。或者创建一个较短路径的符号链接,并在shebang中使用该符号链接。


非常感谢您的回答。然而,我认为这两个建议都无法解决这个问题。(1) 安装由 spack 决定,我在这里没有控制权。(2) 符号链接不被 setuptools 所尊重,即 Python 可执行文件的路径被放置,无论如何。 - Tom de Geus
最后,似乎这个问题已经存在一段时间了,但是我找不到任何解决方法... - Tom de Geus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接