没有名为request PythonAnywhere的模块错误

时间:2015-11-05 17:48:49

标签: python python-3.x urllib pythonanywhere pyvirtualdisplay

我需要在我的代码中使用 urllib 模块,我将其导入为:

import urllib.request
import urllib.error

但PythonAnywhere返回以下错误:

>没有名为request

的模块

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

  

python3 myscript.py

而不是:

  

python myscript.py

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

>没有名为'pyvirtualdisplay'的模块

我的代码中还需要

Pyvirtualdisplay ,所以我不知道该怎么做。有人可以帮忙吗?

3 个答案:

答案 0 :(得分:3)

  

urllib2模块已经拆分为Python 3中名为urllib.request和urllib.error的几个模块   〜urllib2 - python docs

使用

运行脚本时
  

python myscript.py

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

答案 1 :(得分:2)

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

PyVirtualDisplay project page上的安装说明首先需要为Python 3安装pip和Pillow。如果您使用的是Debian或Ubuntu VPS,这些可能适用于终端:< / p>

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中。

答案 2 :(得分:1)

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