[英]shebang not working for python script
我在stackoverflow上查看了很多答案。 我已经尝试了一切。 我在 AddressConversion.py python 脚本的顶部有这个。
#!/usr/bin/env python
import argparse
目标是将其作为命令实用程序运行,这意味着我可以键入
AddressConversion [options][address]
到目前为止,我会满足于能够打字
./AddressConversion [options][address]
我已经完成了 chmod 所以文件是可执行的我已经在文件上运行了 dos2unix 以消除任何随机的 Windows 字符(这似乎不可能,因为该文件仅在 Ubuntu 上使用过。
我检查了 python install with which python 结果
/usr/bin/python
我还检查了哪个 env 并获得了类似的路径 当我使用传统的 python 命令时,脚本可以正常工作。 当我输入时它也可以正常工作:
usr/bin/env python
它将打开python解释器。 这些步骤似乎是任何时候有人问这个问题时建议的解决方案。 我收到此错误:
./AddressConversion.py: line 1: import: command not found
./AddressConversion.py: line 3: syntax error near unexpected token `('
./AddressConversion.py: line 3: `def init_parser():'
这似乎是试图将它作为 shell 脚本或其他东西运行。 有什么建议吗?
创建了一个文件 executeme.py
#!/usr/bin/env python
print("hello")
使其成为可执行文件(可选)
chmod a+x executeme.py
重命名文件
mv executeme.py executeme
立即执行
./executeme
输出
hello
另一种方法来创建一个setup.py文件,以获取更多你可以阅读这里的entry_points
键名console_script
中,你可以给执行者和目标模块格式“NAME =目标”的名义
from setuptools import setup, find_packages
setup(
name='executor',
packages=find_packages(),
install_requires=[,
],
entry_points = {
'console_scripts': [
'executeme=executeme:main',
],
},
)
然后运行命令
pip install -e /path/to/setup.py
在开发模式下从本地 src 安装,即项目看起来已安装,但仍可从 src 树进行编辑。
我有一个类似的问题,它最终是因为行尾的 CRLF。 这些是在 Windows 机器上创建脚本时添加的。 要检查是否是这种情况,请使用 file 命令。
file script.py
它会给你一个这样的输出。 “Python 脚本,ASCII 文本可执行文件,带有 CRLF 行终止符”
要删除 CRLF 行终止符,请执行以下操作。
dos2unix script.py
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.