我已经将.venv安装到我的python项目中。我激活了它,然后根据要求安装了它:
python -m venv .ven
.\.ven\Scripts\activate
pip3 install -r requirements.txt当我运行pip3 list时,我会看到所有的包都被安装了。然而,在尝试运行我的应用程序时,我看到:
Traceback (most recent call last):
File "d:/Projekty/_Python/therobertseye/app.py", line 1, in <module>
from website import create_app
File "d:\Projekty\_Python\therobertseye\website\__init__.py", line 1, in <module>
from flask import Flask
ModuleNotFoundError: No module named 'flask'在我的_init.py:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from os import path
from flask_login import LoginManager但是它不仅仅是Flask --当我为测试目的删除它时:
from flask import Flask当我再次奔跑时,我看到:
Traceback (most recent call last):
File "d:/Projekty/_Python/therobertseye/app.py", line 1, in <module>
from website import create_app
File "d:\Projekty\_Python\therobertseye\website\__init__.py", line 1, in <module>
from flask_sqlalchemy import SQLAlchemy
ModuleNotFoundError: No module named 'flask_sqlalchemy'意味着我的包裹都看不见。看上去venv中的库是不可见的?我怎么才能解决它?
我在app.py by python3.8.exe app.py上运行我的项目
app.py:
from website import create_app
app = create_app()
if __name__ == '__main__':
app.run(debug=True) 编辑:,如@np8 8所述,这两个命令都适用于本地:
python app.py
.\.ven\Scripts\python.exe app.py然而,在Azure上部署时,我在日志中发现了错误:
021-12-11T10:11:56.228062960Z from website.Barcode import Barcode
2021-12-11T10:11:56.228068661Z File "/tmp/8d9bc8c8ae34714/website/Barcode.py", line 2, in <module>
2021-12-11T10:11:56.228074361Z import cv2
2021-12-11T10:11:56.228079661Z File "/tmp/8d9bc8c8ae34714/antenv/lib/python3.8/site-packages/cv2/__init__.py", line 8, in <module>
2021-12-11T10:11:56.228085161Z from .cv2 import *
2021-12-11T10:11:56.228090161Z ImportError: libGL.so.1: cannot open shared object file: No such file or directory
2021-12-11T10:11:56.228096061Z [2021-12-11 10:11:56 +0000] [41] [INFO] Worker exiting (pid: 41)
2021-12-11T10:11:56.497660146Z [2021-12-11 10:11:56 +0000] [39] [INFO] Shutting down: Master
2021-12-11T10:11:56.497793247Z [2021-12-11 10:11:56 +0000] [39] [INFO] Reason: Worker failed to boot.
/home/LogFiles/2021_12_11_10-30-0-5_docker.log 发布于 2021-12-11 09:44:58
您使用的python可执行文件与虚拟环境中的可执行文件不同。当您在cmd或powershell中键入python3.8.exe时,Windows将尝试查找名为python3.8.exe(*)的可执行文件。它会遍历文件夹列表,这些文件夹位于您的Windows PATH变量中。
虚拟环境是如何工作的(部分)是在python.exe文件夹中有一个venv/Scripts。运行虚拟环境激活脚本时,Scripts文件夹将添加到当前进程(cmd或PATH )的PATH中。它被添加到路径的顶部,因此venv中的python.exe将是第一个被找到的。
现在,虚拟环境文件夹中显然没有python3.8.exe,只有一个python.exe。很可能只是跑
python app.py将工作(当虚拟环境在当前进程中被激活时)。如果没有,您可以使用
.\.ven\Scripts\python.exe app.py即使不激活虚拟环境也能正常工作。
(*)附带说明:python3.8.exe是一个特定于Windows的东西。这是一种名为python3.8.exe的全局快捷方式,它将指向具有正确版本的python.exe,就像您自己看到的那样。
https://stackoverflow.com/questions/70312637
复制相似问题