我正在使用带有python版本3.5.2的Ubuntu 16.04。我遇到的问题是,我无法开始融合。每次我尝试打开它时都会收到错误消息:
Traceback (most recent call last):
File "/usr/bin/meld", line 73, in <module>
import meld.conf
ImportError: No module named 'meld'
任何人都可以帮忙吗
由于
希姆
答案 0 :(得分:6)
我的猜测是您已经更改了系统的默认Python版本(Python3而不是Python2)。两种可能的解决方案:
切换回Python2。您可能不想这样做,因为可能有理由切换到Python3。切换回去可能导致其他程序无法正常运行。 有关切换默认Python版本的信息,请参见命令update-alternatives。
强制融合以使用Python2。为此,请在文本编辑器中以根权限打开/ usr / bin / meld,并从
更改第一行#!/usr/bin/python
到
#!/usr/bin/python2
注意:每当更新融合时,您都必须再次进行修改。
答案 1 :(得分:0)
在16.04中由apt软件包管理器处理的生成假定系统python是2.7。因此,所需的python库已安装到/usr/lib/python2.7/dist-packages/meld。如果您的系统是python,则为3.5,它将无法找到所需的软件包。
您的选择是:
在调用meld之前,将启动脚本放在一起将python设置为python2.7
从网站下载自包含包:
import sqlite3
DATABASE = '../FlaskWebProject/database.db'
with app.app_context():
username = request.form['username'];
password = request.form['password'];
query_db("insert into accounts (username, password) values (username, password)")
def get_db():
db = getattr(g, '_database', None)
if db is None:
db = g._database = sqlite3.connect(DATABASE)
return db
def query_db(query, args=(), one=False):
cur = get_db().execute(query, args)
rv = cur.fetchall()
cur.close()
return (rv[0] if rv else None) if one else rv