执行脚本python 3.8.5 VSCode时没有输出
Posted
技术标签:
【中文标题】执行脚本python 3.8.5 VSCode时没有输出【英文标题】:No output when executing the script python 3.8.5 VSCode 【发布时间】:2022-01-17 21:17:07 【问题描述】:我正在开发一个简单的反应式编程脚本示例来从网络下载图像,但是当我在 VScode 中执行脚本时,我没有得到任何类型的输出,我已经尝试创建一个 虚拟环境
在终端我得到这个输出:
PS C:\Users\ernes\Desktop\paradigmas> & C:/Users/ernes/AppData/Local/Programs/Python/Python38/python.exe c:/Users/ernes/Desktop/paradigmas/jose.py PS C:\Users\ernes\Desktop\paradigmas>
代码:
import base64
import aiohttp
import asyncio
import aiofiles
import io
import rx
from tkinter import *
from tkinter.ttk import *
from urllib.request import urlopen
from PIL import ImageTk, Image
from bs4 import BeautifulSoup
class App:
async def getSourceCode(url):
async with aiohttp.ClientSession() as clientSession:
serverResponse = await clientSession.get(url)
sourceCode = await serverResponse.text()
return sourceCode
async def main(self, urlToProcess='https://es.wikipedia.org/wiki/38M_Toldi'):
print(urlToProcess)
sourceCode = self.getSourceCode(urlToProcess)
parsedSource = BeautifulSoup(sourceCode, 'html.parser')
for imgItem in parsedSource.find_all('img', src=True):
if imgItem['src'].find('http') == True:
imgSrc = imgItem['src']
if len(imgItem['alt']) > 0 :
imgName = imgItem['alt']
else:
imgName = imgSrc
if not imgName in self.imgs:
async with aiohttp.ClientSession() as clientSession:
try:
serverResponse = await clientSession.get(imgSrc)
imgBytes = await serverResponse.read(serverResponse)
if imgBytes:
self.bytesfoto.append(imgBytes)
print(f'imgName : imgSrc')
except:
print('Error al descargar la foto')
"""
Definicion de los atributos de la clase iniciales donde se guardan los datos que se usaran en el tkinter para la GUI
contador -- es el que lleva la cuenta de la cantidad de imágenes que se añaden a la lista
window -- define la ventana de la GUI
imgs -- lista en la que se guardan las URLs de las imágenes
bytesfoto -- lista en la que se guardan las fotos en bytes para poder guardarlas en memoria
objImg -- variable que convierte los links de las fotos en observables
"""
def __init__(self):
self.contador = 0
self.window = Tk()
self.window.title = "Reactive-Programming"
self.imgs = []
self.bytesfoto = []
self.objImg = rx.from_iterable(self.imgs)
【问题讨论】:
我认为这需要在文件末尾加上“App().main()”,因为你虽然定义了一个类,但还没有调用它。 @BijayRegmi 试过了,但还是不行 似乎是代码问题,而不是 vscode,它很奇怪 imo 【参考方案1】:添加到底部,在类之外
theobj = asyncio.run(App().main())
theobj()
脚本应该可以运行,但会出现一些错误。
【讨论】:
以上是关于执行脚本python 3.8.5 VSCode时没有输出的主要内容,如果未能解决你的问题,请参考以下文章
VSCode - 在终端和 pythonpath 中运行 Python 文件
vscode切换虚拟环境报错无法加载文件 E:Python_projectshop_envScriptsActivate.ps1,因为在此系统上禁止运行 脚本。