2016-01-02 3 views
1

Я хотел бы знать, есть ли способ, которым я могу поместить Scrapy в подкаталог и импортировать его. Я сделал это с BeautifulSoup, а не устанавливать его, я просто уронить каталог BS4 в каталог моего приложения, и импортировать его:Python включает Scrapy из подкаталога

from bs4 import BeautifulSoup

В источнике, который я скачал с scrapy.org нет scrapy.py поэтому я попытался импортировать

from scrapy import *

Возвращаемый кучу ошибок.

Traceback (most recent call last): 
File "C:\Users\Kat\Desktop\linkscrape\cookie.py", line 1, in <module> from scrapy import * 
File "C:\Users\Kat\Desktop\linkscrape\scrapy\__init__.py", line 27, in <module> 
from . import _monkeypatches 
File "C:\Users\Kat\Desktop\linkscrape\scrapy\_monkeypatches.py", line 2, in <module> 
from six.moves import copyreg 
ImportError: No module named six.moves 

Есть ли способ, что я могу просто включить эту функцию, чтобы сделать его легко перенести приложение с компьютера на компьютер, или же это должно быть установлено? Благодарю.

ответ

4

Не делайте этого. Ты повредишь себе.

Для достижения удобства переносимости используйте virtualenv - это золотой стандарт разработки Python.

Создайте файл с именем requirements.txt в корневой директории вашего проекта, и написать всю необходимую зависимость, например:

python-dateutil==2.4.2 
Scrapy==1.0.4 
XlsxWriter==0.7.7 

При настройке среды, создать свежий virtualenv, а затем просто:

pip install -r requirements.txt 

Voilà! У вас есть рабочая среда.

В случае Scrapy это еще более важно, поскольку в производстве Scrapy обычно развертывается с использованием scrapyd, где необходимо иметь правильный package с номером версии и фиксированными требованиями.

+0

Это, вероятно, лучший/правильный ответ в будущем, но мне все же хотелось бы знать «как», поэтому я могу понять, что «вы причиняете себе боль», а не просто не знать, не понимая почему. – Mark

+0

Каждый пакет Python имеет [требования] (https://github.com/scrapy/scrapy/blob/master/requirements.txt). Каждое требование имеет свои [требования] (https://github.com/twisted/twisted/blob/trunk/setup.py). Когда вы используете 'pip', он автоматически заботится о зависимостях. – alexanderlukanin13

+0

Многие пакеты Python требуют дополнительных шагов сборки: расширение C, Cython и т. Д. Вы не можете просто скопировать источник 'lxml' в ваш проект, это не сработает. 'pip' заботится о создании пакетов автоматически. – alexanderlukanin13

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