我试图通过向本地服务器启动测试应用程序来了解Flask微框架。在尝试运行我的代码app.py
时,我不断收到错误消息:
-bash: ./app.py: /flask/bin/python: bad interpreter: No such file or directory
以下是app.py
的基本代码(taken from here),它位于我的todo-api目录中:
#!/flask/bin/python
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return "Hello, World!"
if __name__ == '__main__':
app.run(debug=True)
我已经检查了python解释器的文件路径,它应该存在:
:bin $ pwd python
Users/me/Documents/Python/todo-api/flask/bin
我已经按照教程去了T;我已经尝试将shebang线改为:
#!/flask/bin/python2.x
#!flask/bin/python
#!/flask/bin/env python
但无济于事。我不是那么了解bash,并且已经尝试查找正在发生的事情,但是那些有类似问题的人的解决方案对我没有用;幕后发生了什么我不理解的事情?
答案 0 :(得分:3)
Bash shebangs希望获得翻译的绝对路径。因此,在您的情况下,您需要指定Python解释器的完整路径,即:
int64
您可能希望调查#!/Users/me/Documents/Python/todo-api/flask/bin
的使用,以便能够使用用户的/usr/bin/env python
环境变量中提供的解释器。见https://unix.stackexchange.com/questions/12736/how-does-usr-bin-env-know-which-program-to-use/12751#12751
答案 1 :(得分:1)
pwd
告诉您当前目录。它没有告诉你命令的位置。该命令的输出是一个红色的鲱鱼。
您可能正在寻找which python
。把那条路放到你的shebang线上。请注意,这将为您提供$PATH
中的Python解释器,这可能是也可能不是正确的。
Python脚本的标准shebang行是
#!/usr/bin/env python
或
#!/usr/bin/python
答案 2 :(得分:0)
我遇到了一个类似的问题,试图将python脚本设置为可执行文件来测试某些东西,并意识到bash的方式比它帮助的更多。我最终设置了pyinstaller(这非常简单),然后让我的脚本成为一个独立的可执行文件而不会混合使用bash。
这就是我所做的(只需几分钟而且没有配置): 第一; pyinstaller需求:build-essential&蟒-dev的
apt-get install build-essential python-dev
(或yum等等......取决于你的操作系统)
然后使用内置的python包管理器来设置pyinstaller: pip install pyinstaller
就是这样。运行:pyinstaller --onefile myapp.py(如果您的操作系统需要exe,则运行pyinstaller.exe)
如果成功(通常是),您的新可执行文件将位于您运行pysinstaller的同一区域中的“Dist”文件夹中。