尽管从相同的 requirements.txt 安装依赖项,但相同的代码在 venv 中不起作用
Same code does not work in venv despite installing dependencies from same requirements.txt
我正在开发 Web 应用程序并尝试从 Spyder 迁移到 VS Code。
它使用默认解释器,所以我创建了一个新的 venv,但是当我启动服务器时,它不能使用没有 venv 的相同代码。
错误描述:
File "C:\Users\User\Desktop\Flask\app.py", line 77, in index
measurement_mx = rs.all()
AttributeError: 'ResultProxy' object has no attribute 'all'
我安装了与 pip install -r requirements.txt
完全相同的依赖项。
你能帮我解决一下吗,很遗憾我找不到这个问题。
相关代码片段:
@app.route('/', methods=['POST', 'GET'])
def index():
with engine.connect() as con:
rs = con.execute(SQL_string)
measurement_mx = rs.all() #this is the error line
measurement_list = []
for row in measurement_mx:
measurement_list.append(row._data)
measurement_list = transpose(measurement_list)
return render_template('index.html', measurement_list=measurement_list )
提前致谢!
欢迎使用 Whosebug!
问题可能是您的 requirements.txt
文件可能指定了要安装的软件包,但没有指定它们的确切版本,所以请问:
- 粘贴您的需求文件的内容?
- 检查两个虚拟环境之间的软件包版本?
一些想法:
- requirements.txt file may constrain packages versions
- 准确重现环境的方法是从
lock
文件安装,例如参见 [=21=])
现在,关于您的具体问题:ResultProxy
不是来自 flask
的对象,而是来自 SQLAlchemy
的对象,其中 SQLAchemy v1.4 replaced:
class sqlalchemy.engine.Result(cursor_metadata)
Represent a set of database results.
New in version 1.4: The Result object provides a completely updated usage model and calling facade for SQLAlchemy Core and SQLAlchemy ORM. In Core, it forms the basis of the CursorResult object which replaces the previous ResultProxy interface. When using the ORM, a higher level object called ChunkedIteratorResult is normally used.
(强调我的)
这意味着您可以:
- 要么修复
requirements.txt
文件中的 SQLAlchemy
版本,
- 或更新您的代码以适应当前的
SQLAlchemy
语法。
我正在开发 Web 应用程序并尝试从 Spyder 迁移到 VS Code。 它使用默认解释器,所以我创建了一个新的 venv,但是当我启动服务器时,它不能使用没有 venv 的相同代码。 错误描述:
File "C:\Users\User\Desktop\Flask\app.py", line 77, in index
measurement_mx = rs.all()
AttributeError: 'ResultProxy' object has no attribute 'all'
我安装了与 pip install -r requirements.txt
完全相同的依赖项。
你能帮我解决一下吗,很遗憾我找不到这个问题。
相关代码片段:
@app.route('/', methods=['POST', 'GET'])
def index():
with engine.connect() as con:
rs = con.execute(SQL_string)
measurement_mx = rs.all() #this is the error line
measurement_list = []
for row in measurement_mx:
measurement_list.append(row._data)
measurement_list = transpose(measurement_list)
return render_template('index.html', measurement_list=measurement_list )
提前致谢!
欢迎使用 Whosebug!
问题可能是您的 requirements.txt
文件可能指定了要安装的软件包,但没有指定它们的确切版本,所以请问:
- 粘贴您的需求文件的内容?
- 检查两个虚拟环境之间的软件包版本?
一些想法:
- requirements.txt file may constrain packages versions
- 准确重现环境的方法是从
lock
文件安装,例如参见 [=21=])
现在,关于您的具体问题:ResultProxy
不是来自 flask
的对象,而是来自 SQLAlchemy
的对象,其中 SQLAchemy v1.4 replaced:
class sqlalchemy.engine.Result(cursor_metadata)
Represent a set of database results.
New in version 1.4: The Result object provides a completely updated usage model and calling facade for SQLAlchemy Core and SQLAlchemy ORM. In Core, it forms the basis of the CursorResult object which replaces the previous ResultProxy interface. When using the ORM, a higher level object called ChunkedIteratorResult is normally used.
(强调我的)
这意味着您可以:
- 要么修复
requirements.txt
文件中的SQLAlchemy
版本, - 或更新您的代码以适应当前的
SQLAlchemy
语法。