繁体   English   中英

shebang 无法在 WSL(Windows 子系统 Linux)上工作

[英]shebang not working on WSL (Windows Subsystem Linux)

我在 Windows 10 上安装了 WSL(Ubuntu 18.04),而不是使用并行 2 操作系统。 但是,当我使用 shebang 时,无法成功运行名为test_file.py的脚本。 首先,我创建了一个名为test_project的文件夹。 在这个文件夹中,我创建了:

  • 一个包含简单 Python 脚本的src文件夹如下所示
    #!/usr/bin/env python3 print("Hello world")
  • 一个Python环境文件夹,通过python3 -m venv environment/命名为environment (我用的是Python 3.6)

问题是当我进入环境并键入一些命令(如附图中的运行 python 文件)时,程序运行“找不到命令”,尽管我已经在代码开头使用了 shebang。

除此之外,我还将#!/usr/bin/env更改为#!/usr/bin/python3并退出环境,但效果不佳。 只有当我输入Python3 test_file.py时它才有效。

有没有人遇到过这个问题? 谁能向我解释为什么会这样? 我想知道在这种情况下使用 WSL 与 Ubuntu 相比是否有不同,或者我在编码过程中遗漏了一些步骤。 我知道这个问题以前很常见,但是我找不到任何可以解决我的问题的资源。 我真的很感谢你的帮助。

我遇到了同样的问题,并通过将行尾从 Windows 的原生 CRLF 更改为 LF 来解决它,这是 shell 所期望的。

您可以使用dos2unix命令执行此操作:

dos2unix -b test_file.py

您可能需要在一些较新的发行版上安装dos2unix

也可以使用其他方法

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM