我在stackoverflow上一直在寻找很多答案。我一切都尝试过。我在AddressConversion.py python脚本的顶部有这个。
#!/usr/bin/env python
import argparse
目标是将其作为命令实用程序运行,这意味着我可以键入
AddressConversion [options][address]
截至目前,我愿意接受输入
./AddressConversion [options][address]
我已经完成了chmod,因此文件是可执行的 我在文件上运行dos2unix以消除任何随机的Windows字符(这似乎不可能,因为该文件仅用于Ubuntu。
我已经检查了python安装与哪个python结果
/usr/bin/python
我还检查了哪个环境并获得了类似的路径 当我使用传统的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脚本或其他东西运行。 有什么建议吗?
答案 0 :(得分:1)
创建了一个文件executeme.py
#!/usr/bin/env python
print("hello")
将其设为可执行文件(可选)
chmod a+x executeme.py
恢复文件
mv executeme.py executeme
立即执行
./executeme
输出
hello
创建一个setup.py文件的另一个选项,您可以阅读here
在entry_points
中,一个密钥名称console_script
,您可以在其中以格式提供执行程序和目标模块的名称
'名称=目标'
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树。
答案 1 :(得分:1)
我有一个类似的问题,它的结尾是由于行尾的CRLF。这些是在Windows计算机上创建脚本时添加的。要检查是否存在这种情况,请使用file命令。
file script.py
它将给您这样的输出。 “ Python脚本,ASCII文本可执行文件,带有CRLF行终止符”
要删除CRLF线路终止符,请执行以下操作。
dos2unix script.py