python flask - flask/bin/python 在更改项目名称后是一个“糟糕的解释器”;必须使用 flask/bin/python3

问题描述 投票:0回答:3

我决定把我的Flask项目文件夹的名字从microblog改成finalproject。我在 Mac 上使用 Python 3.4.2。

这是最终项目的层次结构:

Vivians-MacBook-Pro:finalproject vivianli$ ls
__pycache__ app.db      db_create.py    db_migrate.py   db_upgrade.py   run.py
app     config.py   db_downgrade.py db_repository   flask       tmp

从那时起(在我这样做之前我应该更仔细地考虑这个问题),路径“flask/bin/python”不再有效。例如,

Vivians-MacBook-Pro:finalproject vivianli$ ./db_migrate.py
-bash: ./db_migrate.py: flask/bin/python: bad interpreter: No such file or directory

db_migrate.py 是我已授予权限的迁移脚本。但是,当我使用 flask/bin/python3 时,它起作用了。

我的问题是为什么 flask/bin/python 不再工作,为什么 flask/bin/python3 在更改我的整体项目名称后仍然工作,以及是否还有其他我应该关注的设置。

python python-3.x flask interpreter
3个回答
0
投票

看来你被杀死了一个指向 python 可执行文件的链接。似乎您正在使用 virtualenv:尝试像这样重新创建它:

rm -rf flask
virtualenv --clear flask

或者,如果您不想这样做,您可以重新制作指向 python 可执行文件的链接

cd ./flask/bin
rm -rf python
ln -s <location, where the python is installed>/python ./

0
投票

看起来 flask 没有在 venv 中找到 python。在 flask/bin 文件夹中删除了 python、python3 文件夹

重新创建了 python3 的链接

$ ln -s <{python Installed Path}>/python3 ./
$ ln -s ./python3 ./python

这里的代码对我有用。


0
投票

您正在使用位于

./flask
文件夹中的虚拟环境,因此请查看
flask/bin
文件夹并选择一个 python 解释器。

首先确保您已启动虚拟环境

$ source ./flask/bin/activate

还要检查您的翻译

./flask/bin/python

$ ls -lsa ./flask/bin/

你应该在这里找到

python3.4
或类似的东西并且
python
指着它,大约是这样的:

 0 lrwxrwxrwx 1 fx fx     9 31 mai   14:29 python -> python3.4
 0 lrwxrwxrwx 1 fx fx     9 31 mai   14:29 python3 -> python3.4
12 -rwxr-xr-x 1 fx fx 10440 31 mai   14:29 python3.4

如果没有,你可能需要在你的虚拟环境中建立一个从python3到python的符号链接,以避免在项目的其他脚本中发现同样的问题。

$ cd ./flask/bin
$ ln -s ./python3 ./python

这可能会解决您的问题。

© www.soinside.com 2019 - 2024. All rights reserved.