您将如何安装 python 模块/包,以便我的脚本可以使用 pypy3 而不是 Python3 运行? ImportError:没有命名的模块

Posted

技术标签:

【中文标题】您将如何安装 python 模块/包,以便我的脚本可以使用 pypy3 而不是 Python3 运行? ImportError:没有命名的模块【英文标题】:How would you install python modules/packages so that my script can be run with pypy3 instead of Python3? ImportError: No module named 【发布时间】:2020-11-27 04:10:21 【问题描述】:

我在我的 Debian 10 Xfce 桌面上从源代码构建了 Python3.8(二进制文件在 Debian 存储库中不可用)。也就是说,只要有可能,我都会使用 pypy3 运行我的 python 脚本,这是为了提高性能。 现在,当我使用 pypy3 运行以下代码时:

#!/usr/bin/env python3.8

import requests
from bs4 import BeautifulSoup

url = input("What is the address of the  web page in question?")

response = requests.get(url)


soup = BeautifulSoup(response.text, 'html.parser')

print(soup.title.string)

我从 pypy3 得到:

ImportError: 没有名为“请求”的模块

同样的脚本用Python3.8运行没有任何问题

我假设我必须以与 Python 类似的方式安装模块,即:sudo pip3.8 install requests。 Based on my research of a similar problem described on Stackoveflow我试过了:

pypy3 -m pip3.8 install requests

并从我的 pypy3 中得到以下信息:

查找“pip3.8”的模块规范时出错(ImportError: No >module named 'pip3')

然后我也尝试运行:

pypy3 -m pip install requests

得到以下结果:

没有名为 pip 的模块

我的 pip3.8 在 Python3.8 上运行良好,但不适用于我的 pypy3。

我应该如何在 pypy3 中查找模块。我应该如何安装它们? 安装和导入模块的问题是pypy3使用率低的原因之一吗?

【问题讨论】:

按照说明here为pypy3解释器安装pip(当然是用pypy3代替命令python)。 【参考方案1】:

运行一次以安装 pip 本身:pypy3 -m ensurepip

下一个版本的 PyPy 将改进错误消息,以在您执行 pypy3 -m pip 并且 pip 尚未安装时明确描述此命令。

【讨论】:

当我运行pypy3 -m ensurepip 时出现以下错误:AssertionError: [] 抱歉,不知道。这是 complete 输出,还是只是它的最后一行?【参考方案2】:

pypy3

在 Debian 上启用 snaps 并安装 pypy3

Snap 是与所有依赖项打包在一起的应用程序,可通过单个构建在所有流行的 Linux 发行版上运行。它们会自动更新并优雅地回滚。

可以从拥有数百万用户的应用商店 Snap Store 发现和安装 Snap。

启用 snapd:

    sudo apt update
    sudo apt install snapd

安装 pypy3:

    sudo snap install pypy3 --classic

一般情况下pip和包的安装方式如下

首先,你需要安装 pip

为 Python 3 安装 pip

按照以下步骤在 Debian 上安装 Pip for Python 3:

首先,更新软件包列表:

   sudo apt update

接下来,通过键入以下内容为 Python 3 及其所有依赖项安装 pip:

   sudo apt install python3-pip

通过打印 pip 版本来验证安装:

   pip3 --version

版本号可能不同,但看起来像下面这样:

   pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.5)

点使用率

使用 pip,我们可以从 PyPI、版本控制、本地项目和分发文件安装包,但在大多数情况下,您将从 PyPI 安装包。

我们想安装一个名为 croniter 的软件包,我们可以通过发出以下命令来实现:

   pip install requests

要卸载包运行:

   pip uninstall requests

【讨论】:

以上是关于您将如何安装 python 模块/包,以便我的脚本可以使用 pypy3 而不是 Python3 运行? ImportError:没有命名的模块的主要内容,如果未能解决你的问题,请参考以下文章

为 CLI 脚本构建 python 包

JMeter中的模块ImportError

如何在 Windows 中添加到 PYTHONPATH,以便找到我的模块/包?

python自动安装包

如何扩展 Python 并制作 C 包?

如何加载accessruntime安装包