没有名为请求 PythonAnywhere 错误的模块

No module named request PythonAnywhere error

我需要在我的代码中使用 urllib 模块,我这样导入它:

import urllib.request
import urllib.error

但是PythonAnywhere returns出现如下错误:

> 没有名为 request

的模块

当我尝试时,urllib 库似乎已成功导入:

python3 myscript.py

而不是:

python myscript.py

但在这种情况下我得到另一个错误:

> 没有名为 'pyvirtualdisplay'

的模块

Pyvirtualdisplay在我的代码中也需要,所以我不知道该怎么做。有人可以帮忙吗?

The urllib2 module has been split across several modules in Python 3 named urllib.request and urllib.error ~ urllib2 - python docs

当您运行您的脚本使用

python myscript.py

您的系统使用的 python2 没有 urllib.requesturllib.error 模块。使用 urllib2 库。

您需要将 Python 扩展安装到您使用的每个 Python 副本中。例如,pythonpython3 使用不同的扩展集。您可能有一个名为 pip3 的脚本,它将扩展安装到您的 Python 3.

副本中

关于 PyVirtualDisplay project page state that first you'll need to install pip and Pillow for Python 3 的安装说明。如果您使用的是 Debian 或 Ubuntu VPS,这些可能在终端中工作:

sudo apt-get update
sudo apt-get install python3-pip python3-imaging
sudo pip3 install pyvirtualdisplay

但是 Google 搜索告诉我 PythonAnywhere 是一个 Web 应用程序托管服务。 list of supported extensions 在 Python 2 中包含 pyvirtualdisplay 但在 Python 3 中不包含。只是猜测,但管理员可能不知道 pyvirtualdisplay 已被移植。我建议联系 PythonAnywhere 支持并请求将扩展安装到 Python 3.

您可以为 python 自己安装 pyvirtualdisplay 3. 使用 virtualenv(帮助页面上有详细信息)或使用 pip 的 --user 参数并确保您使用正确版本的pip(pip3.3pip3.4 取决于您要使用的版本)