我想運行一個簡單的'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課程。謝謝大家的幫助:)
嗨歡迎到現場。請將您使用的代碼添加到您的問題中,並附上錯誤消息。在最好的情況下,你的代碼應該是別人可以複製的東西,以幫助你解決問題。 – Jeff
我剛剛添加了代碼。對不起,我沒有這樣做,但這實際上是我的第一篇文章:) –
嘗試'python -c「print(__ import __('sys')。path)」'並在此處粘貼結果。 –