1

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

import urllib.request
import urllib.error

但 PythonAnywhere 返回以下错误:

> 没有名为请求的模块

当我尝试时,看起来urllib库已成功导入:

python3 myscript.py

代替:

python myscript.py

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

> 没有名为“pyvirtualdisplay”的模块

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

4

3 回答 3

3

urllib2 模块在 Python 3 中被拆分为多个模块,名为 urllib.request 和 urllib.error ~ urllib2 - python docs

当您使用运行脚本时

python myscript.py

您的系统正在使用没有urllib.requestandurllib.error模块的 python2。使用urllib2图书馆。

于 2015-11-05T17:59:00.697 回答
2

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

PyVirtualDisplay 项目页面上的安装说明指出,首先您需要为 Python 3 安装 pip 和Pillow。如果您使用的是 Debian 或 Ubuntu VPS,这些可能在终端中工作:

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

但是谷歌搜索告诉我 PythonAnywhere 是一个 Web 应用程序托管服务。支持的扩展列表包括 Python 2 中的 pyvirtualdisplay,但 Python 3 中没有。只是猜测,但管理员可能不知道 pyvirtualdisplay 已被移植。我建议联系 PythonAnywhere 支持并请求将扩展安装到 Python 3 中。

于 2015-11-05T18:00:16.387 回答
1

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

于 2015-11-05T18:25:31.740 回答