2014-10-29 93 views
0

我想让web2py应用程序运行,并且我在其中一个控制器中有以下代码。即使安装了请求,web2py“无法导入请求”

文件名:default.py

import requests 

def index(): 
... 

在我当前激活的virtualenv,我一直在使用PIP安装请求,因为你可以看到下面。

(web2pyenv) PS C:\Users\rajesh\Desktop\code\RealPython-Part2\web2py> pip install requests 
Requirement already satisfied (use --upgrade to upgrade): requests in c:\users\rajesh\desktop\code\realpython-part2\web2py\web2pyenv\lib\site-packages 
Cleaning up... 

如果我打开一个python shell,我可以导入请求并执行通常的操作。

(web2pyenv) PS C:\Users\rajesh\Desktop\code\RealPython-Part2\web2py> python 
Python 2.7.4 (default, Apr 6 2013, 19:54:46) [MSC v.1500 32 bit (Intel)] on win32 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import requests 
>>> requests.get("http://google.com").status_code 
200 
>>> 

当我尝试访问我的web2py应用程序时,它仍然会引发以下错误。

Traceback (most recent call last): 
    File "gluon/restricted.py", line 224, in restricted 
    File "C:/Users/rajesh/Desktop/code/RealPython-Part2/web2py/start/applications/pulse/controllers/default.py", line 1, in <module> 
    import requests 
    File "gluon/custom_import.py", line 86, in custom_importer 
ImportError: Cannot import module 'requests' 

任何指针,我在做什么错在这里?

回答

1

很可能您使用的是Windows二进制版本的web2py。该版本包含自己的Python解释器,因此它不使用您已安装在您的机器(或其任何库)上的Python版本。只要你安装了Python,你最好运行web2py的source code版本。从源代码运行,您将能够导入任何已安装的模块。

+0

谢谢安东尼。是的,我正在使用Windows二进制版本。我会尝试源代码版本,但没有办法在二进制版本中安装和导入新模块? – 2014-10-29 13:56:53

+0

那么,你可以将模块复制到“site-packages”目录中,但是如果你安装了Python,我认为没有任何理由在源代码版本上使用Windows二进制文件(Windows的目的和Mac二进制文件只是为没有安装Python的系统提供完全自包含的软件包)。 – Anthony 2014-10-29 19:38:57

+0

明白了。非常感谢! – 2014-10-29 20:25:07