$ sudo pip install bottle
Downloading/unpacking bottle
Downloading bottle-0.10.7.tar.gz (55Kb): 55Kb downloaded
Running setup.py egg_info for package bottle
Installing collected packages: bottle
Found existing installation: bottle 0.10.7
Uninstalling bottle:
Successfully uninstalled bottle
Running setup.py install for bottle
changing mode of build/scripts-2.6/bottle.py from 640 to 755
changing mode of /usr/local/bin/bottle.py to 755
Successfully installed bottle
>>> help('modules')
blahblah
bottle
blahblah
$ ls /usr/local/lib/python2.6/dist-packages/
bottle-0.10.7.egg-info bottle.py bottle.pyc
but
$ python
Python 2.6.6 (r266:84292, Sep 15 2010, 15:52:39)
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import bottle
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named bottle
wtf??? Ubuntu 10.10
SOLUTION: # chmod -R 775 /usr/local/lib/python2.6/dist-packages/ is help for me. Thanks for all.
It is recommended that you use a virtualenv with python in general but I'd say especially with web development.
What happens when you use a virtualenv?
$ sudo pip install virtualenv virtualenvwrapper
$ sudo cat >> ~/.bashrc << EOF
# virtualenvwrapper setup
export WORKON_HOME=~/.virtualenvs
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages --python=python2.6'
source /usr/local/bin/virtualenvwrapper.sh
EOF
$ source ~/.bashrc
$ mkvirtualenv test
$ pip install bottle
$ python
>>> import bottle
Because I get this:
$ python
Python 2.7.1+ (r271:86832, Apr 11 2011, 18:05:24)
[GCC 4.5.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import bottle
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named bottle
>>>
$ mkvirtualenv test
Running virtualenv with interpreter /usr/bin/python2.6
New python executable in test/bin/python2.6
Also creating executable in test/bin/python
Please make sure you remove any previous custom paths from your /home/hughdbrown/.pydistutils.cfg file.
Installing setuptools.............................done.
Installing pip...............done.
virtualenvwrapper.user_scripts creating /home/hughdbrown/.virtualenvs/test/bin/predeactivate
virtualenvwrapper.user_scripts creating /home/hughdbrown/.virtualenvs/test/bin/postdeactivate
virtualenvwrapper.user_scripts creating /home/hughdbrown/.virtualenvs/test/bin/preactivate
virtualenvwrapper.user_scripts creating /home/hughdbrown/.virtualenvs/test/bin/postactivate
virtualenvwrapper.user_scripts creating /home/hughdbrown/.virtualenvs/test/bin/get_env_details
$ pip install bottle
Downloading/unpacking bottle
Downloading bottle-0.10.7.tar.gz (55Kb): 55Kb downloaded
Running setup.py egg_info for package bottle
Installing collected packages: bottle
Running setup.py install for bottle
changing mode of build/scripts-2.6/bottle.py from 644 to 755
changing mode of /home/hughdbrown/.virtualenvs/test/bin/bottle.py to 755
Successfully installed bottle
Cleaning up...
$ python
Python 2.6.6 (r266:84292, Mar 25 2011, 19:24:58)
[GCC 4.5.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import bottle
>>>
What ended up working for me was:
chmod -R 775 /usr/local/lib/python2.6/dist-packages/
Please, check the following documentation on PYTHONHOME and PYTHONPATH:
- http://docs.python.org/using/cmdline.html#envvar-PYTHONHOME
- http://docs.python.org/using/cmdline.html#envvar-PYTHONPATH
and check your PYTHONHOME too.
I know I'm late to the party - but I was having a problem using python command and my bottle.py module being located in my 3.x lib directory.
I just tossed a symlink from bottle.py in my python3.x to my current 2.x directory as such:
sudo ln -s ~/.local/lib/python3.5/site-packages/bottle.py /usr/local/lib/python2.7/dist-packages/bottle.py
Obviously change the version numbers to match your directory structure!
来源:https://stackoverflow.com/questions/9122200/importerror-no-module-named-bottle