2016-08-19 99 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,所以我已經粘貼了一個全部輸出到原始帖子。 –

相關問題