即使安装了请求,web2py“无法导入请求”
问题描述:
我想让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'
任何指针,我在做什么错在这里?
答
很可能您使用的是Windows二进制版本的web2py。该版本包含自己的Python解释器,因此它不使用您已安装在您的机器(或其任何库)上的Python版本。只要你安装了Python,你最好运行web2py的source code版本。从源代码运行,您将能够导入任何已安装的模块。
谢谢安东尼。是的,我正在使用Windows二进制版本。我会尝试源代码版本,但没有办法在二进制版本中安装和导入新模块? – 2014-10-29 13:56:53
那么,你可以将模块复制到“site-packages”目录中,但是如果你安装了Python,我认为没有任何理由在源代码版本上使用Windows二进制文件(Windows的目的和Mac二进制文件只是为没有安装Python的系统提供完全自包含的软件包)。 – Anthony 2014-10-29 19:38:57
明白了。非常感谢! – 2014-10-29 20:25:07