百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术分类 > 正文

PyScript:让 Python 脚本在 Web 中跑起来

ztj100 2025-02-15 02:05 41 浏览 0 评论

这是下一个大事件吗?如果继续发展下去,有可能。


在 2022 年 PyCon 美国大会期间,作为主题演讲嘉宾之一的 Peter Wang 公布了 PyScript,一种在 HTML 中直接编写 Python 脚本的方法。或许你不知道 Peter,但你可能听说过 Anaconda,这是一种流行的开源的 Python 和 R 语言的发行版本,特别关注数据科学。Peter 正是 Anaconda 的 CEO 和联合创始人。


换言之,PyScript 是由一家著名的科技公司开发的,这可能会保证它在不久的将来成为可行的方案。它在 Python 和 Web 开发者中受到了极大的关注,GitHub 上已有超过 10k 颗 Stars。然而,它是否能成为一个成功的、有竞争力的产品,取决于长期的时间和开发投入。目前,它还有一些已知的缺陷(将在最后讨论)。


闲话少说,让我们快速了解一下这个令人振奋的产品吧!

py-script 标签

我们知道,HTML 文件是大多数网站最常见的元素。在创建网站时,我们的工作就是直接或间接地通过一些框架来编制 HTML 文件。在典型的 HTML 文件中,你会看到各种类型的标签。例如,定义了 HTML 页面的元数据和关键信息,</span></span><span style="color: #494949; --tt-darkmode-color: #9D9D9D;">是整个文档的标题,而</span><span style="color: #494949; --tt-darkmode-color: #494949;"><span style="background-color: #F1F3F5; --tt-darkmode-bgcolor: #BDBEC0;"><h1></span></span><span style="color: #494949; --tt-darkmode-color: #9D9D9D;">、</span><span style="color: #494949; --tt-darkmode-color: #494949;"><span style="background-color: #F1F3F5; --tt-darkmode-bgcolor: #BDBEC0;"><h2></span></span><span style="color: #494949; --tt-darkmode-color: #9D9D9D;">等定义了不同级别的内容标题。</span></p><p data-track="10" class="syl-page-br" style><br></p><p data-track="11"><span style="color: #494949; --tt-darkmode-color: #9D9D9D;">如前所述,PyScript 允许你在 HTML 中编写 Python 脚本,它使用一个特殊的标签</span><span style="color: #494949; --tt-darkmode-color: #494949;"><span style="background-color: #F1F3F5; --tt-darkmode-bgcolor: #BDBEC0;">py-script</span></span><span style="color: #494949; --tt-darkmode-color: #9D9D9D;">。在这个标签中,你可以嵌入 Python 脚本。要了解它是如何工作的,可以创建一个 HTML 文件,其中包含以下代码,并使用 Chrome 浏览器打开该文件。在 Chrome 浏览器中,你应该能够看到类似下面这样的内容:</span></p><p data-track="12" class="syl-page-br syl-page-br-hide" style><br></p><p data-track="13" class="syl-page-br syl-page-br-hide" style><br></p><p style="text-align: center;" data-track="14">作者截图</p><p data-track="15" class="syl-page-br" style><br></p><p data-track="16"><span style="color: #494949; --tt-darkmode-color: #9D9D9D;">在上面的代码片段中,你可能已经注意到以下三个关键点:</span></p><ul><li data-track="17"><span style="color: #292929; --tt-darkmode-color: #292929;"><span style="background-color: #F1F3F5; --tt-darkmode-bgcolor: #BDBEC0;">link</span></span>标签定义了一个外部样式表。在这个例子中,我们使用了 PyScript 提供的<span style="color: #292929; --tt-darkmode-color: #292929;"><span style="background-color: #F1F3F5; --tt-darkmode-bgcolor: #BDBEC0;">css</span></span>文件。</li><li data-track="18"><span style="color: #494949; --tt-darkmode-color: #9D9D9D;">我们使用</span><span style="color: #292929; --tt-darkmode-color: #292929;"><span style="background-color: #F1F3F5; --tt-darkmode-bgcolor: #BDBEC0;">script</span></span>标签来嵌入一个由<span style="color: #292929; --tt-darkmode-color: #292929;"><span style="background-color: #F1F3F5; --tt-darkmode-bgcolor: #BDBEC0;">src</span></span>定义、由 PyScript 托管的外部脚本。我们使用了<span style="color: #292929; --tt-darkmode-color: #292929;"><span style="background-color: #F1F3F5; --tt-darkmode-bgcolor: #BDBEC0;">defer</span></span>,这样脚本会在下载和页面解析完成后执行——本质上是一种延迟执行,而不是实时执行。</li><li data-track="19"><span style="color: #494949; --tt-darkmode-color: #9D9D9D;">最有趣的部分是</span><span style="color: #292929; --tt-darkmode-color: #292929;"><span style="background-color: #F1F3F5; --tt-darkmode-bgcolor: #BDBEC0;">py-script</span></span>标签。如你所见,<span style="color: #292929; --tt-darkmode-color: #292929;"><span style="background-color: #F1F3F5; --tt-darkmode-bgcolor: #BDBEC0;">print("Hello, World!")</span></span>是 Python 代码。当执行 HTML 文件时,就可以看到代码求值结果。</li></ul><p data-track="20" class="syl-page-br" style><br></p><p data-track="21"><span style="color: #494949; --tt-darkmode-color: #9D9D9D;">这很酷,不是吗?如果你不熟悉 Web 开发,但了解 Python,就可以使用 PyScript 嵌入任何有效的 Python 代码。让我们再看一个例子。</span></p><p data-track="22" class="syl-page-br syl-page-br-hide" style><br></p><p data-track="23" class="syl-page-br syl-page-br-hide" style><br></p><p style="text-align: center;" data-track="24"><span style="color: #494949; --tt-darkmode-color: #9D9D9D;">另一个 PyScript 示例(图片由作者提供)</span></p><p data-track="25" class="syl-page-br" style><br></p><p data-track="26"><span style="color: #494949; --tt-darkmode-color: #9D9D9D;">在这里,我们写了一些需要计算的代码,可以看到,脚本得到了正确的执行。</span></p><h1 class="pgc-h-arrow-right" data-track="27">py-env 标签</h1><p data-track="28"><span style="color: #494949; --tt-darkmode-color: #9D9D9D;">在编写更复杂的代码时,就需要使用第三方库。在这种情况下,我们可以利用</span><span style="color: #494949; --tt-darkmode-color: #494949;"><span style="background-color: #F1F3F5; --tt-darkmode-bgcolor: #BDBEC0;">py-env</span></span><span style="color: #494949; --tt-darkmode-color: #9D9D9D;">标签。你可能已经猜到的,env 是 environment 的缩写。</span><span style="color: #494949; --tt-darkmode-color: #494949;"><span style="background-color: #F1F3F5; --tt-darkmode-bgcolor: #BDBEC0;">py-env</span></span><span style="color: #494949; --tt-darkmode-color: #9D9D9D;">标签中列出了运行代码所需的 Python 包。</span></p><p data-track="29" class="syl-page-br" style><br></p><p data-track="30"><span style="color: #494949; --tt-darkmode-color: #9D9D9D;">你可能知道,许多数据科学家都使用 pandas 进行数据处理工作。让我们看看下面的例子。</span></p><p data-track="31" class="syl-page-br syl-page-br-hide" style><br></p><p data-track="32" class="syl-page-br syl-page-br-hide" style><br></p><p style="text-align: center;" data-track="33"><span style="color: #494949; --tt-darkmode-color: #9D9D9D;">使用包的 PyScript(图片由作者提供)</span></p><p data-track="34" class="syl-page-br" style><br></p><p data-track="35"><span style="color: #494949; --tt-darkmode-color: #9D9D9D;">如你所见,我们在</span><span style="color: #494949; --tt-darkmode-color: #494949;"><span style="background-color: #F1F3F5; --tt-darkmode-bgcolor: #BDBEC0;">py-env</span></span><span style="color: #494949; --tt-darkmode-color: #9D9D9D;">标签中指定了依赖项(即 Pandas),该标签包含在</span><span style="color: #494949; --tt-darkmode-color: #494949;"><span style="background-color: #F1F3F5; --tt-darkmode-bgcolor: #BDBEC0;">head</span></span><span style="color: #494949; --tt-darkmode-color: #9D9D9D;">标签中。如果页面需要多个依赖项,可以在这里把它们全部列出:</span></p><p data-track="36" class="syl-page-br" style><br></p><pre class="prism-highlight prism-language-bash" class="syl-page-code"><code><py-env> - pandas - matplotlib - numpy </py-env></code></pre><p data-track="38"><span style="color: #888888; --tt-darkmode-color: #5E5E5E;"><span style="background-color: #F1F3F5; --tt-darkmode-bgcolor: #BDBEC0;">复制代码</span></span></p><p data-track="39"><span style="color: #494949; --tt-darkmode-color: #9D9D9D;">如你所见,在</span><span style="color: #494949; --tt-darkmode-color: #494949;"><span style="background-color: #F1F3F5; --tt-darkmode-bgcolor: #BDBEC0;">py-script</span></span><span style="color: #494949; --tt-darkmode-color: #9D9D9D;">标签中,我们确实可以使用 Pandas 库来创建一个</span><span style="color: #494949; --tt-darkmode-color: #494949;"><span style="background-color: #F1F3F5; --tt-darkmode-bgcolor: #BDBEC0;">DataFrame</span></span><span style="color: #494949; --tt-darkmode-color: #9D9D9D;">对象。然而,当我们把打印出来时就会发现,它是一个单行,而不是一个结构化的数据表。没有一个适当的结构,我们就无法理解这些数据。幸运的是,我们可以使用</span><span style="color: #494949; --tt-darkmode-color: #494949;"><span style="background-color: #F1F3F5; --tt-darkmode-bgcolor: #BDBEC0;">write</span></span><span style="color: #494949; --tt-darkmode-color: #9D9D9D;">函数(下文会讨论)。</span></p><h1 class="pgc-h-arrow-right" data-track="40">将内容写入指定标签</h1><p data-track="41"><span style="color: #494949; --tt-darkmode-color: #9D9D9D;">除了 Python 中的标准打印函数</span><span style="color: #494949; --tt-darkmode-color: #494949;"><span style="background-color: #F1F3F5; --tt-darkmode-bgcolor: #BDBEC0;">print</span></span><span style="color: #494949; --tt-darkmode-color: #9D9D9D;">,作为脚本的一部分,PyScript 有自己的</span><span style="color: #494949; --tt-darkmode-color: #494949;"><span style="background-color: #F1F3F5; --tt-darkmode-bgcolor: #BDBEC0;">write</span></span><span style="color: #494949; --tt-darkmode-color: #9D9D9D;">函数,可以将数据发送到页面上指定的 Web 元素中。请看下面的例子:</span></p><p data-track="42" class="syl-page-br syl-page-br-hide" style><br></p><p data-track="43" class="syl-page-br syl-page-br-hide" style><br></p><p style="text-align: center;" data-track="44"><span style="color: #494949; --tt-darkmode-color: #9D9D9D;">PyScript 写函数 write(图片由作者提供)</span></p><p data-track="45" class="syl-page-br" style><br></p><p data-track="46"><span style="color: #494949; --tt-darkmode-color: #9D9D9D;">与之前的例子相比,上述代码片段有两个重大变化:</span></p><ul><li data-track="47"><span style="color: #494949; --tt-darkmode-color: #9D9D9D;">我们现在定义了一个 id 为</span><span style="color: #292929; --tt-darkmode-color: #292929;"><span style="background-color: #F1F3F5; --tt-darkmode-bgcolor: #BDBEC0;">"DataFrame"</span></span>的<span style="color: #292929; --tt-darkmode-color: #292929;"><span style="background-color: #F1F3F5; --tt-darkmode-bgcolor: #BDBEC0;">div</span></span>,这样稍后就可以引用。</li><li data-track="48"><span style="color: #494949; --tt-darkmode-color: #9D9D9D;">在</span><span style="color: #292929; --tt-darkmode-color: #292929;"><span style="background-color: #F1F3F5; --tt-darkmode-bgcolor: #BDBEC0;">py-script</span></span>标签中,我们创建一个与之前相同的<span style="color: #292929; --tt-darkmode-color: #292929;"><span style="background-color: #F1F3F5; --tt-darkmode-bgcolor: #BDBEC0;">DataFrame</span></span>对象。但现在,我们不是调用<span style="color: #292929; --tt-darkmode-color: #292929;"><span style="background-color: #F1F3F5; --tt-darkmode-bgcolor: #BDBEC0;">print</span></span>,而是调用<span style="color: #292929; --tt-darkmode-color: #292929;"><span style="background-color: #F1F3F5; --tt-darkmode-bgcolor: #BDBEC0;">pyscript.write</span></span>函数,请求 PyScript 处理并在<span style="color: #292929; --tt-darkmode-color: #292929;"><span style="background-color: #F1F3F5; --tt-darkmode-bgcolor: #BDBEC0;">"DataFrame"</span></span>中显示<span style="color: #292929; --tt-darkmode-color: #292929;"><span style="background-color: #F1F3F5; --tt-darkmode-bgcolor: #BDBEC0;">DataFrame</span></span>对象。从输出可以看到,我们现在有一个结构化的表格了。</li></ul><p data-track="49" class="syl-page-br" style><br></p><p data-track="50"><span style="color: #494949; --tt-darkmode-color: #494949;"><span style="background-color: #F1F3F5; --tt-darkmode-bgcolor: #BDBEC0;">write</span></span><span style="color: #494949; --tt-darkmode-color: #9D9D9D;">函数不仅能够打印表格,还能够打印数字。下面的例子向你展示了我们如何使用</span><span style="color: #494949; --tt-darkmode-color: #494949;"><span style="background-color: #F1F3F5; --tt-darkmode-bgcolor: #BDBEC0;">matplotlib</span></span><span style="color: #494949; --tt-darkmode-color: #9D9D9D;">(一个流行的 Python 包,用于数据可视化)来显示由 Python 创建的图。</span></p><p data-track="51" class="syl-page-br syl-page-br-hide" style><br></p><p data-track="52" class="syl-page-br syl-page-br-hide" style><br></p><p style="text-align: center;" data-track="53"><span style="color: #494949; --tt-darkmode-color: #9D9D9D;">PyScript 打印图(图片由作者提供)</span></p><p data-track="54" class="syl-page-br" style><br></p><p data-track="55"><span style="color: #494949; --tt-darkmode-color: #9D9D9D;">如你所见,</span><span style="color: #494949; --tt-darkmode-color: #494949;"><span style="background-color: #F1F3F5; --tt-darkmode-bgcolor: #BDBEC0;">write</span></span><span style="color: #494949; --tt-darkmode-color: #9D9D9D;"> 函数以期望的方式显示了图。</span></p><h1 class="pgc-h-arrow-right" data-track="56">py-repl 标签</h1><p data-track="57" class="syl-page-br" style><br></p><p data-track="58"><span style="color: #494949; --tt-darkmode-color: #9D9D9D;">Python 学习的最好方法之一是使用 REPL:读取(Read)、求值(Evaluate)、打印(Print)和循环(Loop)。也就是说,使用一个交互式的 Python 控制台,输入一些代码,Python 对其进行求值并打印适当的输出,然后重复这个过程。Web 页面也可以提供这样的 REPL 环境,比如 Jupyter Notebook。</span></p><p data-track="59" class="syl-page-br" style><br></p><p data-track="60"><span style="color: #494949; --tt-darkmode-color: #9D9D9D;">PyScript 可以使用</span><span style="color: #494949; --tt-darkmode-color: #494949;"><span style="background-color: #F1F3F5; --tt-darkmode-bgcolor: #BDBEC0;">py-repl</span></span><span style="color: #494949; --tt-darkmode-color: #9D9D9D;">标签提供与此类似的东西。在这个元素中,你可以让用户自己编写代码,也可以以编程方式输入代码。请看下面的例子:</span></p><p data-track="61" class="syl-page-br syl-page-br-hide" style><br></p><p data-track="62" class="syl-page-br syl-page-br-hide" style><br></p><p style="text-align: center;" data-track="63"><span style="color: #494949; --tt-darkmode-color: #9D9D9D;">PyScript REPL(图片由作者提供)</span></p><p data-track="64" class="syl-page-br" style><br></p><p data-track="65"><span style="color: #494949; --tt-darkmode-color: #9D9D9D;">如你所见,上图中有一个单元格,其中包括在</span><span style="color: #494949; --tt-darkmode-color: #494949;"><span style="background-color: #F1F3F5; --tt-darkmode-bgcolor: #BDBEC0;">py-repl</span></span><span style="color: #494949; --tt-darkmode-color: #9D9D9D;">标签中指定的代码。值得注意的是,单元格中的代码可以引用我们之前在</span><span style="color: #494949; --tt-darkmode-color: #494949;"><span style="background-color: #F1F3F5; --tt-darkmode-bgcolor: #BDBEC0;">py-script</span></span><span style="color: #494949; --tt-darkmode-color: #9D9D9D;">标签中定义的变量。一切看起来都很协调。</span></p><h1 class="pgc-h-arrow-right" data-track="66">感想</h1><p data-track="67" class="syl-page-br" style><br></p><p data-track="68"><span style="color: #494949; --tt-darkmode-color: #9D9D9D;">本文介绍的内容是现阶段 PyScript 所能提供的主要亮点。它似乎是一个很有前途的产品,因为它提供了一个灵活的框架,让 Python 程序员可以在没有太多 Web 开发知识的情况下创建 Web 应用。然而,也有其他类似的成功的产品,因此,竞争会很激烈。</span></p><p data-track="69" class="syl-page-br" style><br></p><p data-track="70"><span style="color: #494949; --tt-darkmode-color: #9D9D9D;">例如,如果我需要为自己的数据科学项目创建一个 Web 应用,我就会直接使用 Streamlit。它的功能已经相对成熟。请注意,虽然都与 Web 开发有关,但 PyScript 和 Streamlit 属于不同的产品系。PyScript 应该更通用,因为它的目标是让你可以在任何网页上嵌入任何 Python 代码,Streamlit 做不到这一点。</span></p><p data-track="71" class="syl-page-br" style><br></p><p data-track="72"><span style="color: #494949; --tt-darkmode-color: #9D9D9D;">在 PyScript 为更多的人所接受之前,它有几个问题必须解决。例如,Web 页面的加载速度非常慢。如果你尝试跟随本教程运行代码,可能就会注意到,在 Web 页面的显示会有一个明显的滞后。</span></p><p data-track="73" class="syl-page-br" style><br></p><p data-track="74"><span style="color: #494949; --tt-darkmode-color: #9D9D9D;">尽管如此,我还是觉得这个产品会继续发展,我的信心主要来自于它的开发者——给我们带来极好的 Anaconda 工具的 Anaconda 团队。</span></p><p data-track="75" class="syl-page-br" style><br></p><p data-track="76"><em><span style="color: #333333; --tt-darkmode-color: #A3A3A3;">本文最初发布于 Better Programming。</span></em></p><p data-track="77" class="syl-page-br" style><br></p><p data-track="78"><span style="color: #494949; --tt-darkmode-color: #9D9D9D;">查看英文原文:</span>Running Python Scripts on the Web Using PyScript</p><p data-track="79">了解更多软件开发与相关领域知识,点击访问 InfoQ 官网:https://www.infoq.cn/,获取更多精彩内容!</p></div> <div class="clearfix mb10"> <div class="share fr"> <div class="social-share mb20 ta-c" data-initialized="true"> <a href="#" class="social-share-icon iconfont icon-weibo"></a> <a href="#" class="social-share-icon iconfont icon-qq"></a> <a href="#" class="social-share-icon iconfont icon-wechat"></a> <a href="#" class="social-share-icon iconfont icon-qzone"></a> </div> <script src="http://www.zjt100.com/zb_users/theme/tx_hao/script/social-share.min.js"></script> </div> <div class="info-tag"> <a href="http://www.zjt100.com/tags-150.html" title="查看更多python env内容" rel="tag" target="_blank">python env</a> </div> </div> <div class="info-next"> <ul class="row"> <li class="col-12 col-m-24 mb10">上一篇:<a href="http://www.zjt100.com/post/3303.html" title="python解释器管理工具pyenv使用说明">python解释器管理工具pyenv使用说明</a></li> <li class="col-12 col-m-24 ta-r mb10">下一篇:<a href="http://www.zjt100.com/post/3305.html" title="实用小技巧:三分钟教会在python使用虚拟环境(virtualenv)">实用小技巧:三分钟教会在python使用虚拟环境(virtualenv)</a></li> </ul> </div> </div> <h2 class="tx-title">相关推荐</h2> <div class="home-news"> <dl class="news-box clearfix pd15"> <dt class="f-20 mb10"><a href="http://www.zjt100.com/post/6242.html" title="其实TensorFlow真的很水无非就这30篇熬夜练" class="f-black" target="_blank">其实TensorFlow真的很水无非就这30篇熬夜练</a></dt> <dd class="news-txt"> <p class="f-gray f-13">好的!以下是TensorFlow需要掌握的核心内容,用列表形式呈现,简洁清晰(含表情符号,<300字):1.基础概念与环境TensorFlow架构(计算图、会话->EagerE...</p> </dd> </dl> <dl class="news-box clearfix pd15"> <dt class="f-20 mb10"><a href="http://www.zjt100.com/post/6241.html" title="交叉验证和超参数调整:如何优化你的机器学习模型" class="f-black" target="_blank">交叉验证和超参数调整:如何优化你的机器学习模型</a></dt> <dd class="news-txt"> <p class="f-gray f-13">准确预测Fitbit的睡眠得分在本文的前两部分中,我获取了Fitbit的睡眠数据并对其进行预处理,将这些数据分为训练集、验证集和测试集,除此之外,我还训练了三种不同的机器学习模型并比较了它们的性能。在...</p> </dd> </dl> <dl class="news-box clearfix pd15"> <dt class="f-20 mb10"><a href="http://www.zjt100.com/post/6240.html" title="机器学习交叉验证全指南:原理、类型与实战技巧" class="f-black" target="_blank">机器学习交叉验证全指南:原理、类型与实战技巧</a></dt> <dd class="news-txt"> <p class="f-gray f-13">机器学习模型常常需要大量数据,但它们如何与实时新数据协同工作也同样关键。交叉验证是一种通过将数据集分成若干部分、在部分数据上训练模型、在其余数据上测试模型的方法,用来检验模型的表现。这有助于发现过拟合...</p> </dd> </dl> <dl class="news-box clearfix pd15"> <dt class="f-20 mb10"><a href="http://www.zjt100.com/post/6239.html" title="深度学习中的类别激活热图可视化" class="f-black" target="_blank">深度学习中的类别激活热图可视化</a></dt> <dd class="news-txt"> <p class="f-gray f-13">作者:ValentinaAlto编译:ronghuaiyang导读使用Keras实现图像分类中的激活热图的可视化,帮助更有针对性...</p> </dd> </dl> <dl class="news-box clearfix pd15"> <dt class="f-20 mb10"><a href="http://www.zjt100.com/post/6238.html" title="超强,必会的机器学习评估指标" class="f-black" target="_blank">超强,必会的机器学习评估指标</a></dt> <dd class="news-txt"> <p class="f-gray f-13">大侠幸会,在下全网同名[算法金]0基础转AI上岸,多个算法赛Top[日更万日,让更多人享受智能乐趣]构建机器学习模型的关键步骤是检查其性能,这是通过使用验证指标来完成的。选择正确的验证指...</p> </dd> </dl> <dl class="news-box clearfix pd15"> <dt class="f-20 mb10"><a href="http://www.zjt100.com/post/6237.html" title="机器学习入门教程-第六课:监督学习与非监督学习" class="f-black" target="_blank">机器学习入门教程-第六课:监督学习与非监督学习</a></dt> <dd class="news-txt"> <p class="f-gray f-13">1.回顾与引入上节课我们谈到了机器学习的一些实战技巧,比如如何处理数据、选择模型以及调整参数。今天,我们将更深入地探讨机器学习的两大类:监督学习和非监督学习。2.监督学习监督学习就像是有老师的教学...</p> </dd> </dl> <dl class="news-box clearfix pd15"> <dt class="f-20 mb10"><a href="http://www.zjt100.com/post/6236.html" title="Python教程(三十八):机器学习基础" class="f-black" target="_blank">Python教程(三十八):机器学习基础</a></dt> <dd class="news-txt"> <p class="f-gray f-13">...</p> </dd> </dl> <dl class="news-box clearfix pd15"> <dt class="f-20 mb10"><a href="http://www.zjt100.com/post/6235.html" title="Python 模型部署不用愁!容器化实战,5 分钟搞定环境配置" class="f-black" target="_blank">Python 模型部署不用愁!容器化实战,5 分钟搞定环境配置</a></dt> <dd class="news-txt"> <p class="f-gray f-13">你是不是也遇到过这种糟心事:花了好几天训练出的Python模型,在自己电脑上跑得顺顺当当,一放到服务器就各种报错。要么是Python版本不对,要么是依赖库冲突,折腾半天还是用不了。别再喊“我...</p> </dd> </dl> <dl class="news-box clearfix pd15"> <dt class="f-20 mb10"><a href="http://www.zjt100.com/post/6234.html" title="超全面讲透一个算法模型,高斯核!!" class="f-black" target="_blank">超全面讲透一个算法模型,高斯核!!</a></dt> <dd class="news-txt"> <p class="f-gray f-13">...</p> </dd> </dl> <dl class="news-box clearfix pd15"> <dt class="f-20 mb10"><a href="http://www.zjt100.com/post/6233.html" title="神经网络与传统统计方法的简单对比" class="f-black" target="_blank">神经网络与传统统计方法的简单对比</a></dt> <dd class="news-txt"> <p class="f-gray f-13">传统的统计方法如...</p> </dd> </dl> <dl class="news-box clearfix pd15"> <dt class="f-20 mb10"><a href="http://www.zjt100.com/post/6232.html" title="AI 基础知识从0.1到0.2——用“房价预测”入门机器学习全流程" class="f-black" target="_blank">AI 基础知识从0.1到0.2——用“房价预测”入门机器学习全流程</a></dt> <dd class="news-txt"> <p class="f-gray f-13">...</p> </dd> </dl> <dl class="news-box clearfix pd15"> <dt class="f-20 mb10"><a href="http://www.zjt100.com/post/6231.html" title="自回归滞后模型进行多变量时间序列预测" class="f-black" target="_blank">自回归滞后模型进行多变量时间序列预测</a></dt> <dd class="news-txt"> <p class="f-gray f-13">下图显示了关于不同类型葡萄酒销量的月度多元时间序列。每种葡萄酒类型都是时间序列中的一个变量。假设要预测其中一个变量。比如,sparklingwine。如何建立一个模型来进行预测呢?一种常见的方...</p> </dd> </dl> <dl class="news-box clearfix pd15"> <dt class="f-20 mb10"><a href="http://www.zjt100.com/post/6230.html" title="苹果AI策略:慢哲学——科技行业的“长期主义”试金石" class="f-black" target="_blank">苹果AI策略:慢哲学——科技行业的“长期主义”试金石</a></dt> <dd class="news-txt"> <p class="f-gray f-13">苹果AI策略的深度原创分析,结合技术伦理、商业逻辑与行业博弈,揭示其“慢哲学”背后的战略智慧:一、反常之举:AI狂潮中的“逆行者”当科技巨头深陷AI军备竞赛,苹果的克制显得格格不入:功能延期:App...</p> </dd> </dl> <dl class="news-box clearfix pd15"> <dt class="f-20 mb10"><a href="http://www.zjt100.com/post/6229.html" title="时间序列预测全攻略,6大模型代码实操" class="f-black" target="_blank">时间序列预测全攻略,6大模型代码实操</a></dt> <dd class="news-txt"> <p class="f-gray f-13">如果你对数据分析感兴趣,希望学习更多的方法论,希望听听经验分享,欢迎移步宝藏公众号...</p> </dd> </dl> <dl class="news-box clearfix pd15"> <dt class="f-20 mb10"><a href="http://www.zjt100.com/post/6228.html" title="AI 基础知识从 0.4 到 0.5—— 计算机视觉之光 CNN" class="f-black" target="_blank">AI 基础知识从 0.4 到 0.5—— 计算机视觉之光 CNN</a></dt> <dd class="news-txt"> <p class="f-gray f-13">...</p> </dd> </dl> </div> <div class="pd15"> <div class="tx-comments mb20"> <label id="AjaxCommentBegin"></label> <label id="AjaxCommentEnd"></label> </div> <!--评论框--> <div class="post tx-comment" id="divCommentPost"> <h3><a id="cancel-reply" href="#divCommentPost" class="fr hide"><small>取消回复</small></a>欢迎 <span class="f-red">你</span> 发表评论:</h3> <form id="frmSumbit" target="_self" method="post" action="http://www.zjt100.com/zb_system/cmd.php?act=cmt&postid=3304&key=127ac71880c68a5e43c99b1827072a64" class="clearfix"> <input type="hidden" name="inpId" id="inpId" value="3304"> <input type="hidden" name="inpRevID" id="inpRevID" value="0"> <div class="tx-comment-box tx-comment-ul3"><input type="text" name="inpName" id="inpName" class="text" value="访客" size="28" tabindex="1" placeholder="名称(*)"> </div> <div class="tx-comment-box tx-comment-ul3 tx-comment-ul3-2"><input type="text" name="inpEmail" id="inpEmail" class="text" value="" size="28" tabindex="2" placeholder="邮箱"></div> <div class="tx-comment-box tx-comment-ul3"><input type="text" name="inpHomePage" id="inpHomePage" class="text" value="" size="28" tabindex="3" placeholder="网站"></div> <div class="tx-comment-box tx-comment-textarea"> <textarea name="txaArticle" id="txaArticle" class="text" cols="50" rows="4" tabindex="5" placeholder="欢迎你的交流评论,但是垃圾评论不受欢迎"></textarea> <input name="sumbit" type="submit" tabindex="6" value="提交" onclick="return zbp.comment.post()" class="button"> </div> </form> </div> </div> </div> <div class="side-box col-6 col-m-24 col2-"> <dl class="side-hot"> <dt>一周热门</dt> <dd> <ul> <li> <a href="http://www.zjt100.com/post/98.html" title="Vue自定义Hook示例:useUrlState(vue中的自定义指令如何使用)" target="_blank"> <h2 class="f-15">Vue自定义Hook示例:useUrlState(vue中的自定义指令如何使用)</h2> </a> </li> <li> <a href="http://www.zjt100.com/post/97.html" title="Vue-实现自定义插件弹窗(vue 实现弹窗)" target="_blank"> <h2 class="f-15">Vue-实现自定义插件弹窗(vue 实现弹窗)</h2> </a> </li> <li> <a href="http://www.zjt100.com/post/4817.html" title="MySQL中这14个小玩意,让人眼前一亮!" target="_blank"> <h2 class="f-15">MySQL中这14个小玩意,让人眼前一亮!</h2> </a> </li> <li> <a href="http://www.zjt100.com/post/1712.html" title="旗舰机新标杆 OPPO Find X2系列正式发布 售价5499元起" target="_blank"> <h2 class="f-15">旗舰机新标杆 OPPO Find X2系列正式发布 售价5499元起</h2> </a> </li> <li> <a href="http://www.zjt100.com/post/50.html" title="什么是幂等?分布式锁如何实现业务幂等?" target="_blank"> <h2 class="f-15">什么是幂等?分布式锁如何实现业务幂等?</h2> </a> </li> <li> <a href="http://www.zjt100.com/post/220.html" title="手把手教你搞定菜单权限设计,精确到按钮级别,建议收藏" target="_blank"> <h2 class="f-15">手把手教你搞定菜单权限设计,精确到按钮级别,建议收藏</h2> </a> </li> <li> <a href="http://www.zjt100.com/post/948.html" title="如何发个 npm 包?" target="_blank"> <h2 class="f-15">如何发个 npm 包?</h2> </a> </li> <li> <a href="http://www.zjt100.com/post/216.html" title="详解MySQL 字符串拼接之concat\concat_ws\group_concat" target="_blank"> <h2 class="f-15">详解MySQL 字符串拼接之concat\concat_ws\group_concat</h2> </a> </li> <li> <a href="http://www.zjt100.com/post/648.html" title="如何快速切换node版本?利用n包快速切换nodejs版本" target="_blank"> <h2 class="f-15">如何快速切换node版本?利用n包快速切换nodejs版本</h2> </a> </li> <li> <a href="http://www.zjt100.com/post/681.html" title="【Python机器学习系列】建立多层感知机模型预测心脏疾病" target="_blank"> <h2 class="f-15">【Python机器学习系列】建立多层感知机模型预测心脏疾病</h2> </a> </li> </ul> </dd> </dl> <dl class="function" id="divPrevious"> <dt class="function_t">最近发表</dt><dd class="function_c"> <ul><li><a title="其实TensorFlow真的很水无非就这30篇熬夜练" href="http://www.zjt100.com/post/6242.html">其实TensorFlow真的很水无非就这30篇熬夜练</a></li> <li><a title="交叉验证和超参数调整:如何优化你的机器学习模型" href="http://www.zjt100.com/post/6241.html">交叉验证和超参数调整:如何优化你的机器学习模型</a></li> <li><a title="机器学习交叉验证全指南:原理、类型与实战技巧" href="http://www.zjt100.com/post/6240.html">机器学习交叉验证全指南:原理、类型与实战技巧</a></li> <li><a title="深度学习中的类别激活热图可视化" href="http://www.zjt100.com/post/6239.html">深度学习中的类别激活热图可视化</a></li> <li><a title="超强,必会的机器学习评估指标" href="http://www.zjt100.com/post/6238.html">超强,必会的机器学习评估指标</a></li> <li><a title="机器学习入门教程-第六课:监督学习与非监督学习" href="http://www.zjt100.com/post/6237.html">机器学习入门教程-第六课:监督学习与非监督学习</a></li> <li><a title="Python教程(三十八):机器学习基础" href="http://www.zjt100.com/post/6236.html">Python教程(三十八):机器学习基础</a></li> <li><a title="Python 模型部署不用愁!容器化实战,5 分钟搞定环境配置" href="http://www.zjt100.com/post/6235.html">Python 模型部署不用愁!容器化实战,5 分钟搞定环境配置</a></li> <li><a title="超全面讲透一个算法模型,高斯核!!" href="http://www.zjt100.com/post/6234.html">超全面讲透一个算法模型,高斯核!!</a></li> <li><a title="神经网络与传统统计方法的简单对比" href="http://www.zjt100.com/post/6233.html">神经网络与传统统计方法的简单对比</a></li> </ul> </dd> </dl> <dl class="function" id="divTags"> <dt class="function_t">标签列表</dt><dd class="function_c"> <ul><li><a title="idea eval reset" href="http://www.zjt100.com/tags-2.html">idea eval reset<span class="tag-count"> (50)</span></a></li> <li><a title="vue dispatch" href="http://www.zjt100.com/tags-3.html">vue dispatch<span class="tag-count"> (70)</span></a></li> <li><a title="update canceled" href="http://www.zjt100.com/tags-5.html">update canceled<span class="tag-count"> (42)</span></a></li> <li><a title="order by asc" href="http://www.zjt100.com/tags-6.html">order by asc<span class="tag-count"> (53)</span></a></li> <li><a title="spring gateway" href="http://www.zjt100.com/tags-8.html">spring gateway<span class="tag-count"> (67)</span></a></li> <li><a title="简单代码编程 贪吃蛇" href="http://www.zjt100.com/tags-9.html">简单代码编程 贪吃蛇<span class="tag-count"> (40)</span></a></li> <li><a title="transforms.resize" href="http://www.zjt100.com/tags-12.html">transforms.resize<span class="tag-count"> (33)</span></a></li> <li><a title="redisson trylock" href="http://www.zjt100.com/tags-18.html">redisson trylock<span class="tag-count"> (35)</span></a></li> <li><a title="卸载node" href="http://www.zjt100.com/tags-21.html">卸载node<span class="tag-count"> (35)</span></a></li> <li><a title="np.reshape" href="http://www.zjt100.com/tags-22.html">np.reshape<span class="tag-count"> (33)</span></a></li> <li><a title="torch.arange" href="http://www.zjt100.com/tags-29.html">torch.arange<span class="tag-count"> (34)</span></a></li> <li><a title="npm 源" href="http://www.zjt100.com/tags-33.html">npm 源<span class="tag-count"> (35)</span></a></li> <li><a title="vue3 deep" href="http://www.zjt100.com/tags-44.html">vue3 deep<span class="tag-count"> (35)</span></a></li> <li><a title="win10 ssh" href="http://www.zjt100.com/tags-65.html">win10 ssh<span class="tag-count"> (35)</span></a></li> <li><a title="vue foreach" href="http://www.zjt100.com/tags-91.html">vue foreach<span class="tag-count"> (34)</span></a></li> <li><a title="idea设置编码为utf8" href="http://www.zjt100.com/tags-103.html">idea设置编码为utf8<span class="tag-count"> (35)</span></a></li> <li><a title="vue 数组添加元素" href="http://www.zjt100.com/tags-104.html">vue 数组添加元素<span class="tag-count"> (34)</span></a></li> <li><a title="std find" href="http://www.zjt100.com/tags-109.html">std find<span class="tag-count"> (34)</span></a></li> <li><a title="tablefield注解用途" href="http://www.zjt100.com/tags-114.html">tablefield注解用途<span class="tag-count"> (35)</span></a></li> <li><a title="python str转json" href="http://www.zjt100.com/tags-121.html">python str转json<span class="tag-count"> (34)</span></a></li> <li><a title="java websocket客户端" href="http://www.zjt100.com/tags-128.html">java websocket客户端<span class="tag-count"> (34)</span></a></li> <li><a title="tensor.view" href="http://www.zjt100.com/tags-148.html">tensor.view<span class="tag-count"> (34)</span></a></li> <li><a title="java jackson" href="http://www.zjt100.com/tags-151.html">java jackson<span class="tag-count"> (34)</span></a></li> <li><a title="vmware17pro最新密钥" href="http://www.zjt100.com/tags-261.html">vmware17pro最新密钥<span class="tag-count"> (34)</span></a></li> <li><a title="mysql单表最大数据量" href="http://www.zjt100.com/tags-269.html">mysql单表最大数据量<span class="tag-count"> (35)</span></a></li> </ul> </dd> </dl> </div> </div> </div> </div> <div class="footer"> <div class="wide ta-c f-12"> <a href="https://beian.miit.gov.cn/" target="_blank">赣ICP备2023011147号-29</a> </div> </div> <div class="fixed-box "> <ul> <li class="pchide wapflex"><a href="http://www.zjt100.com/"><i class="fa fa-home"></i> 首页</a></li> <li><a href="http://www.zjt100.com/?shoulu" title="收录申请" target="_blank"><i class="fa fa-chain-broken mr5"></i>收录</a></li> <li><span class="gotop"><i class="fa fa-caret-up mr5"></i> 顶部</span></li> </ul> </div> <script src="http://www.zjt100.com/zb_users/theme/tx_hao/script/txcstx.min.js?v=2024-10-03"></script> </body> </html><!--297.48 ms , 16 queries , 4112kb memory , 0 error-->