2016-08-19 100 views
0

我想运行一个简单的'Hello world'应用程序。每次我运行它我得到我得到'ImportError:No module named web',尽管它已安装

'ImportError: No module named web' 

我安装了web.py使用pip和easy_install几次。我试着卸载它并重新安装。我尝试安装它作为sudo。似乎没有任何工作。我使用OS X

代码的应用程序:

import web 

urls = (
    '/', 'index' 
) 

app = web.application(urls, globals()) 

class index: 
    def GET(self): 
     greeting = "Hello World" 
     return greeting 

if __name__ == "__main__": 
    app.run() 

我试图用这个表彰运行这个程序:

python /Users/mptorz/webversion/bin/app.py http://0.0.0.0:8080/ 

但是我知道这是不是代码的问题,因为我基本上在做这个课程http://learnpythonthehardway.org/book/ex50.html

我认为这可能很有趣。我刚才又试图重新安装web.py和我有这个错误:

pc7:~ mptorz$ pip uninstall web.py 
Uninstalling web.py-0.40.dev0: 
    /usr/local/lib/python2.7/site-packages/web.py-0.40.dev0-py2.7.egg 
Proceed (y/n)? y 
Exception: 
Traceback (most recent call last): 
    File "/usr/local/lib/python2.7/site-packages/pip/basecommand.py", line 215, in main 
    status = self.run(options, args) 
    File "/usr/local/lib/python2.7/site-packages/pip/commands/uninstall.py", line 76, in run 
    requirement_set.uninstall(auto_confirm=options.yes) 
    File "/usr/local/lib/python2.7/site-packages/pip/req/req_set.py", line 336, in uninstall 
    req.uninstall(auto_confirm=auto_confirm) 
    File "/usr/local/lib/python2.7/site-packages/pip/req/req_install.py", line 742, in uninstall 
    paths_to_remove.remove(auto_confirm) 
    File "/usr/local/lib/python2.7/site-packages/pip/req/req_uninstall.py", line 115, in remove 
    renames(path, new_path) 
    File "/usr/local/lib/python2.7/site-packages/pip/utils/__init__.py", line 267, in renames 
    shutil.move(old, new) 
    File "/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 300, in move 
    rmtree(src) 
    File "/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 247, in rmtree 
    rmtree(fullname, ignore_errors, onerror) 
    File "/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 252, in rmtree 
    onerror(os.remove, fullname, sys.exc_info()) 
    File "/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 250, in rmtree 
    os.remove(fullname) 
OSError: [Errno 13] Permission denied: '/usr/local/lib/python2.7/site-packages/web.py-0.40.dev0-py2.7.egg/EGG-INFO/dependency_links.txt' 

我试图做同样的使用sudo,我得到这个错误。

pc7:~ mptorz$ sudo pip uninstall web.py 
Password: 
The directory '/Users/mptorz/Library/Caches/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag. 
Uninstalling web.py-0.40.dev0: 
    /usr/local/lib/python2.7/site-packages/web.py-0.40.dev0-py2.7.egg 
Proceed (y/n)? y 
    Successfully uninstalled web.py-0.40.dev0 
The directory '/Users/mptorz/Library/Caches/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag. 

然后我试图做到这一点:

pc7:~ mptorz$ sudo pip install web.py 
The directory '/Users/mptorz/Library/Caches/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag. 
The directory '/Users/mptorz/Library/Caches/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag. 
Collecting web.py 
    Downloading web.py-0.38.tar.gz (91kB) 
    100% |████████████████████████████████| 92kB 199kB/s 
Installing collected packages: web.py 
    Running setup.py install for web.py ... done 
Successfully installed web.py-0.38 

当我运行应用程序,我仍然得到同样的错误“导入错误:没有模块名为web”。

我被要求增加蟒蛇-c “打印(进口( 'SYS')路径。)” 的结果:

pc7:~ mptorz$ python -c "print(__import__('sys').path)" 
['', '/Library/Python/2.7/site-packages/pip-8.1.2-py2.7.egg', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages', '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload', '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC', '/Library/Python/2.7/site-packages'] 

Somone的也建议尝试“蟒蛇-m PIP安装网络。 PY” 这导致了这个错误:

pc7:~ mptorz$ python -m pip install web.py 
Collecting web.py 
    Downloading web.py-0.38.tar.gz (91kB) 
    100% |████████████████████████████████| 92kB 215kB/s 
Installing collected packages: web.py 
    Running setup.py install for web.py ... error 
    Complete output from command /usr/bin/python -u -c "import setuptools, tokenize;__file__='/private/var/folders/w6/f08g43wn1zg6ny5b_lq414cr0000gn/T/pip-build-pn7SCD/web.py/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /var/folders/w6/f08g43wn1zg6ny5b_lq414cr0000gn/T/pip-tBblX5-record/install-record.txt --single-version-externally-managed --compile: 
    running install 
    running build 
    running build_py 
    creating build 
    creating build/lib 
    creating build/lib/web 
    copying web/__init__.py -> build/lib/web 
    copying web/application.py -> build/lib/web 
    copying web/browser.py -> build/lib/web 
    copying web/db.py -> build/lib/web 
    copying web/debugerror.py -> build/lib/web 
    copying web/form.py -> build/lib/web 
    copying web/http.py -> build/lib/web 
    copying web/httpserver.py -> build/lib/web 
    copying web/net.py -> build/lib/web 
    copying web/python23.py -> build/lib/web 
    copying web/session.py -> build/lib/web 
    copying web/template.py -> build/lib/web 
    copying web/test.py -> build/lib/web 
    copying web/utils.py -> build/lib/web 
    copying web/webapi.py -> build/lib/web 
    copying web/webopenid.py -> build/lib/web 
    copying web/wsgi.py -> build/lib/web 
    creating build/lib/web/wsgiserver 
    copying web/wsgiserver/__init__.py -> build/lib/web/wsgiserver 
    copying web/wsgiserver/ssl_builtin.py -> build/lib/web/wsgiserver 
    copying web/wsgiserver/ssl_pyopenssl.py -> build/lib/web/wsgiserver 
    creating build/lib/web/contrib 
    copying web/contrib/__init__.py -> build/lib/web/contrib 
    copying web/contrib/template.py -> build/lib/web/contrib 
    running install_lib 
    creating /Library/Python/2.7/site-packages/web 
    error: could not create '/Library/Python/2.7/site-packages/web': Permission denied 

    ---------------------------------------- 
Command "/usr/bin/python -u -c "import setuptools, tokenize;__file__='/private/var/folders/w6/f08g43wn1zg6ny5b_lq414cr0000gn/T/pip-build-pn7SCD/web.py/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /var/folders/w6/f08g43wn1zg6ny5b_lq414cr0000gn/T/pip-tBblX5-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /private/var/folders/w6/f08g43wn1zg6ny5b_lq414cr0000gn/T/pip-build-pn7SCD/web.py/ 

做的一切,我在这里建议,我试图再次运行应用程序,我有此之后

我刚刚尝试了@PhilipTzou建议的家庭咖啡解决方案。之后我这样做,运行应用程序的输出是:

pc7:~ mptorz$ python /Users/mptorz/webversion/bin/app.py http://0.0.0.0:8080/ 
Traceback (most recent call last): 
    File "/Users/mptorz/webversion/bin/app.py", line 1, in <module> 
    import web 
    File "/usr/local/lib/python2.7/site-packages/web/__init__.py", line 14, in <module> 
    import utils, db, net, wsgi, http, webapi, httpserver, debugerror 
    File "/usr/local/lib/python2.7/site-packages/web/wsgi.py", line 8, in <module> 
    import http 
    File "/usr/local/lib/python2.7/site-packages/web/http.py", line 16, in <module> 
    import net, utils, webapi as web 
    File "/usr/local/lib/python2.7/site-packages/web/webapi.py", line 31, in <module> 
    import sys, cgi, Cookie, pprint, urlparse, urllib 
    File "/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/cgi.py", line 50, in <module> 
    import mimetools 
    File "/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/mimetools.py", line 6, in <module> 
    import tempfile 
    File "/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/tempfile.py", line 32, in <module> 
    import io as _io 
    File "/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/io.py", line 51, in <module> 
    import _io 
ImportError: dlopen(/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_io.so, 2): Symbol not found: __PyCodecInfo_GetIncrementalDecoder 
    Referenced from: /usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_io.so 
    Expected in: flat namespace 
in /usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_io.so 

SOLUTION 最后,它的工作。运行@PhilipTzou建议的解决方案后,输入python /Users/mptorz/webversion/bin/app.py 8080 app.py终于可以工作了,我可以继续我的python课程。谢谢大家的帮助:)

+0

嗨欢迎到现场。请将您使用的代码添加到您的问题中,并附上错误消息。在最好的情况下,你的代码应该是别人可以复制的东西,以帮助你解决问题。 – Jeff

+0

我刚刚添加了代码。对不起,我没有这样做,但这实际上是我的第一篇文章:) –

+0

尝试'python -c“print(__ import __('sys')。path)”'并在此处粘贴结果。 –

回答

1

根据您的sys.path的输出,您可能正在使用OSX Python来运行您的脚本(app.py),但使用Homebrew Python来执行PIP命令。该解决方案是非常简单的:

brew link --overwrite python 

这将change your default Python to Homebrew one。执行此命令后,您可以键入以下命令来验证您正在使用自制的Python:

which -a python 

结果应该是这样的(序列事项):

/usr/local/bin/python 
/usr/bin/python 
+0

谢谢。我刚刚做到了。我得到的正确结果是: '/ usr/local/bin/python /usr/bin/python' 不幸的是,app.py仍然无法运行。我在原帖中粘贴了输出。 –

+0

嗯......尝试打开另一个bash窗口并再次运行它。它可能与某些bash缓存(http://stackoverflow.com/a/34861280/2644759)有关。 –

+0

不幸的是,现在它给了我ValueError:无效的文字int()与基10:'//0.0.0.0:8080 /'' 它已经返回该错误,然后我尝试覆盖python,所以我已经粘贴了一个全部输出到原始帖子。 –

相关问题