小编Tob*_*ist的帖子

MacOS:带有绝对路径的 Shebang 不起作用

在某些情况下,使用 shebang 选择 Python 解释器似乎不起作用。

我正在尝试在 MacOS 上的 shebang ( #!/...) 中使用我的 python3.9 解释器。请参阅下面的 Python 文件hello.py

#!/nix/store/i46k148mi830riq4wxh49ki8qmq0731k-python3-3.9.2-env/bin/python3.9
print("Hello world")
Run Code Online (Sandbox Code Playgroud)

现在,我将确保该文件可执行,并尝试执行它:

$ chmod +x ./hello.py
$ ./hello.py

./hello.py: line 2: syntax error near unexpected token `"Hello world"'
./hello.py: line 2: `print("Hello world")'
Run Code Online (Sandbox Code Playgroud)

这很奇怪。我是不是输错了什么?让我尝试直接用我的解释器执行它,看看它是否有效:

$ chmod +x ./hello.py
$ ./hello.py

./hello.py: line 2: syntax error near unexpected token `"Hello world"'
./hello.py: line 2: `print("Hello world")'
Run Code Online (Sandbox Code Playgroud)

这似乎运作良好。舍邦为何失败?让我尝试使用不同的解释器:

$ /nix/store/i46k148mi830riq4wxh49ki8qmq0731k-python3-3.9.2-env/bin/python3.9 ./hello.py

Hello world
Run Code Online (Sandbox Code Playgroud)
$ ./hello.py

Hello world
Run Code Online (Sandbox Code Playgroud)

现在可以了吗?那很有意思。

问题:

  • 为什么 /nix/store-path …

python shell shebang python-3.x nix

4
推荐指数
1
解决办法
1378
查看次数

标签 统计

nix ×1

python ×1

python-3.x ×1

shebang ×1

shell ×1