2013-09-10 1 views
1

Я хочу написать сценарий установки, который устанавливает pexpect, а затем использует его. Что-то вродеКак установить и импортировать модуль python в тот же скрипт?

... 
os.system('easy_install pexpect') 
import pexpect 
... 

Проблема заключается в том, что импорт не удается, с сообщением

import pexpect 
ImportError: No module named pexpect 

Как я могу выполнить эквивалентный результат?

+0

Если вы используете окна: при попытке этого: удалили ли вы файл 'pexpect.pth' в пакетах сайтов? – User

+0

Я не уверен, что я понимаю ваш комментарий, я работаю на Linux, и перед запуском моего установщика я удаляю пакет pexpect 'easy_install -m pexpect' и' rm -rf /usr/lib/python2.7/ site-packages/pexpect-2.4-py2.7.egg', как описано в http://stackoverflow.com/questions/1231688/how-do-i-remove-packages-installed-with-pythons-easy-install – e271p314

ответ

1

Он не будет работать с setuptools, потому что setuptools установит pexpect как яйцо, а затем добавит его в easy-install.pth, который проверяется только при запуске. Вы можете обойти эту проблему различными способами, но проще использовать вместо pip установить pexpect:

>>> import pexpect 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ImportError: No module named pexpect 
>>> import os 
>>> os.system('bin/pip install pexpect') 
Downloading/unpacking pexpect 
    Downloading pexpect-2.4.tar.gz (113kB): 113kB downloaded 
    Running setup.py egg_info for package pexpect 

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

Successfully installed pexpect 
Cleaning up... 
0 
>>> import pexpect 
>>> 

pip будет устанавливать модули в менее волшебный (но, возможно, Messier) способом, а модули в конечном итоге на SYS. путь напрямую, так что работает.

+0

Ну , Я ожидаю, что это тоже сработает, но мне не повезло, как ты. Факт в том, что во второй раз, когда я запускаю программу установки, импорт не прерывается, поэтому кажется, что easy_install работает нормально. Вы уверены, что pexpect не был установлен в вашей среде, прежде чем пытаться установить его, а затем импортировать в тот же скрипт? Я использую python 2.7.3 на linux fedora 17, и на данный момент приведенный выше сценарий не работает для меня – e271p314

+0

@ e271p314 Я передумал, это не сработало из коробки. Однако он работал с 'pip install', см. Выше. –

+0

Да, использование 'pip' решило проблему, спасибо за ваш ответ. – e271p314

 Смежные вопросы

  • Нет связанных вопросов^_^