您将如何安装 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:没有命名的模块的主要内容,如果未能解决你的问题,请参考以下文章