2012-06-28 4 views
1

Я использую Think Python для изучения программирования в течение последних нескольких дней. Сегодня я добрался до главы 4, когда начал говорить о необходимости использования Swampy, пакета (правильный термин?), Который использовался в этой главе для разработки интерфейса.Ошибка модуля при установке модуля

Таким образом, получение к моему вопросу, первый бит кода, я сказал, чтобы войти в

from swampy.TurtleWorld import * 
world = TurtleWorld() 
bob = Turtle() 
wait_for_user() 

Когда я бегу, я получаю следующую ошибку

Traceback (most recent call last): 
File "/Users/dylanevans/Documents/Code/Python/TurtleWorld.py", line 1, in <module> 
from swampy.TurtleWorld import * 
ImportError: No module named swampy.TurtleWorld 

я установил и удаленные болотистые с помощью pip и distutils, болотистые в пакетах сайтов, и когда я спрашиваю у переводчика, какие модули установлены, появляется болотистая местность. Я просто не понимаю, почему я получаю ошибку.

Кроме того, у моего PYTHONPATH есть «/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/swampy» в конце. Хотя у него есть это дважды, я не знаю, важно ли это.

Любая помощь будет принята с благодарностью.

Спасибо

ответ

2

Откройте терминал и введите env | grep ^PYTHONPATH надеюсь, вы получите что-то вроде этого:

PYTHONPATH=/python/path/with/write/access:/another/python/path 

Выберите один из путей у вас есть доступ к, и это будет OURPYPKGPATH=/python/path/with/write/access

Если такой PYTHONPATH не существует мы сделает наши собственные в нашем домашнем каталоге и обеспечить питон может видеть его в будущем:

mkdir ~/.ourPyPkgPath 
echo 'export PYTHONPATH=$PYTHONPATH:~/.ourPyPkgPath' >> ~/.profile 

и в этом случае мы будем U се OURPYPKGPATH=~/.ourPyPkgPath

Теперь установить болотистую

easy_install -d $OURPYPKGPATH 'http://pypi.python.org/packages/source/s/swampy/swampy-2.1.1.tar.gz' 

Теперь это должно быть просто случай либо source ~/.profile или выход из системы и снова для того, чтобы установить переменные окружения PYTHONPATH.

+0

. Другое решение - если у вас есть права на запись в каталог python site-packages, это использовать вместо этого 'OURPYPKGPATH = \' python -c 'из distutils.sysconfig import get_python_lib ; print (get_python_lib()) \ '" ' –

+0

У меня тоже есть аналогичная проблема. Я установил статистику, используя пипс, и я вижу, что найти/-name «statsd» /usr/local/lib/python2.7/dist-packages/statsd Можете ли вы объяснить, почему это происходит? Но когда я запускаю импорт statsd в моем коде, я получаю ошибку импорта. –

0

Установили ли вы болотистый модуль? Если нет, следуйте these instructions.

Для запуска отдельного скрипта, вы можете поместить свой код внутри следующего блока:

if __name__ == '__main__': 
    world = TurtleWorld() 
    bob = Turtle() 
    wait_for_user() 

Это говорит питона, чтобы выполнить код, если скрипт быть непосредственно называется. Поэтому, если вы использовали это как функция swampFunction, и вы вызвали его из другого сценария, вышеуказанный блок не запускался.

+0

Я бы подумал, что ошибка будет другой. –

+0

Извините, я случайно сохранил вопрос до того, как закончил. В нем объясняется моя установка болота. Спасибо за быстрый ответ. – Whonut

+0

@ user1485047 Вы используете virtualenv или у вас есть какие-либо другие версии python? Откройте python в консоли и введите: 'from distutils.sysconfig import get_python_lib', а затем ' print (get_python_lib()) '. Что он говорит? –

1

Кроме того, мой PYTHONPATH имеет '/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/swampy' в конце. Хотя у него есть это дважды, я не знаю, важно ли это .

Вы добавили его вручную?Вы должны изменить PYTHONPATH, если вы устанавливаете пакеты в нестандартных местах - другими словами, если вы не используете pip или easy_install, но хотите, чтобы пакет был доступен для Python по всему миру.

Для устранения таких головных болей рекомендуется использовать виртуальную среду python, которую вы можете создать с помощью virtualenv. Как только вы установили virtualenv:

[email protected]:~$ virtualenv --no-site-packages swampy 
The --no-site-packages flag is deprecated; it is now the default behavior. 
New python executable in swampy/bin/python 
Installing distribute.............................................................................................................................................................................................done. 
Installing pip...............done. 
[email protected]:~$ source swampy/bin/activate 
(swampy)[email protected]:~$ pip install swampy 
Downloading/unpacking swampy 
    Downloading swampy-2.1.1.tar.gz (46Kb): 46Kb downloaded 
    Running setup.py egg_info for package swampy 

Installing collected packages: swampy 
    Running setup.py install for swampy 

Successfully installed swampy 
Cleaning up... 
(swampy)[email protected]:~$ python 
Python 2.7.3 (default, Apr 20 2012, 22:44:07) 
[GCC 4.6.3] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> from swampy.TurtleWorld import * 
>>> quit() 
(swampy)[email protected]:~$