2015-11-18 3 views
-1

Я хочу настроить популярную библиотеку Scython (в основном, некоторые команды print и т. Д.), Чтобы проверить, как она работает внутри. Я вытащил исходный код из GitHub и создал виртуальный env conda, чтобы начать эксперименты.Использовать библиотеку Python без установки

Во-первых, я зашел в библиотеку и попробовал $ python -c "import scrapy"; это просит загрузить некоторую зависимость, которую я использую, используя pip, и после нескольких итераций я могу ее импортировать.

Возможно ли это использовать? Не нужно ли компилировать/устанавливать его и т. Д.?

Кроме того, у Scrapy есть CLI, который я хочу использовать (например, $ scrapy --help). Как мне это сделать?

В конце концов, я хочу отредактировать основной файл в дистрибутиве, сохранить его, зайти в мой каталог home, запустить Scrapy с терминала и посмотреть, какие изменения.

+0

Его питон, нет «компиляции». –

+1

@EdgarAroutiounian Это неправильно, в Python компилируется. Python объединяет ваши * .py-файлы в * .pyc. Когда вы выполняете код, он мгновенно компилируется в байт-код Python. Вы можете скомпилировать файлы вручную с помощью 'python -m compileall .' (' .' означает «скомпилировать все в текущем каталоге»). Просто, что Python делает компиляцию без необходимости делать это вручную, не означает, что компиляция на Python отсутствует. – Dakkaron

+0

Возможно, вы ищете CDing в исходный каталог, а затем запустите '' pip install -e.'', который устанавливает пакет в текущем местоположении в редактируемом режиме. Затем вы должны иметь возможность редактировать источник и видеть свои изменения при запуске '' scrapy'' в командной строке, учитывая, что вы запускаете его с тем же самым виртуальным доступом. – steinar

ответ

0

Хотя компиляция в Python (вопреки комментарию Эдгара Арутюняна) не требуется, поскольку у Python есть Just-In-Time-Compiler, который компилирует все скрипты при их выполнении. Если вы можете импортировать файл, вы можете его использовать.

+0

Как насчет использования командной строки? Как я могу использовать их без установки? –

+1

Также есть некоторые модули Python, которые взаимодействуют с библиотеками C и требуют компиляции битов кода C при построении из исходного кода. –

+0

Если вы не устанавливаете библиотеку правильно, вам нужно поместить ее в путь вашего проекта, чтобы импортировать ее. Если вы находитесь в правильном каталоге, вы можете использовать его из командной строки. – Dakkaron

0

Я предлагаю вам создавать и устанавливать, но в изолированной среде.

Я считаю, что самый простой способ для вас, чтобы изменить Scrapy и использовать модифицированную версию, сохраняя при этом межремонтный вниз, чтобы сделать

python setup.py install 

в корне репозитория Git.

Если вы хотите избежать установки модифицированной терапии в вашей системе, вы можете использовать virtualenv для создания своего рода песочницы, хорошо подходящей для проектов python.

Обычно вы бы установить пакет virtualenv, на Debian это python-virtualenv, а затем сделать:

mkdir ~/envs 
virtualenv ~/envs/scrapy 
source ~/envs/scrapy/bin/activate 

который дает среду, в которой шаг python setup.py install будет только установить измененный Scrapy в каталоге ~/envs/scrapy/. Это приведет к тому, что ваша система не будет затронута вашей установкой.

Эта среда активна независимо от того, в каком каталоге вы работаете. Чтобы выйти из virtualenv, вы просто пишете deactivate, и вы вернетесь к нормальной жизни.

Однако у Scrapy есть зависимости для его сборки, поэтому вам понадобятся те, которые установлены в вашей системе при установке таким образом. Если это проблема, вы можете принять это дополнительно и использовать экземпляр lxc, например. шаблон Ubuntu, чтобы получить песочницу для всей системы.

+0

Я действительно не хотел устанавливать каждый раз, когда делаю небольшие изменения. Как временное решение, я 'cd'ing в репозиторий Scrapy и импортирую оттуда. Таким образом, я получаю изменения, которые я сделал. Единственным недостатком является то, что я должен использовать Scrapy из скриптов; а не через cli (например, '$ scrapy list') –

+0

Я вижу. И да, это то, что вы прямо сказали в своем вопросе :). Оборот довольно короткий, когда переустанавливается после первого раза. – JoGr

+0

А, я не знал об этом. Попробуй. Я хочу, чтобы virtualenv также создавал отдельные конфигурационные файлы bash, тогда я мог бы указать bash на репозиторий scrapy, и все будет хорошо. 'lxc' может быть полезен здесь, спасибо за подсказку. –

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