ошибка urlopen 10045, 'уже обращаются используемый' при загрузке в Python 2.5 в Windows

Technical Publishing Software - Представления о FrameMaker и Его Альтернативы

я сделал документы спецификации с ЛАТЕКСОМ и Плотником, и разработал рабочий процесс Плотника для поддержки команды 5 аналитиков, представляющих документ спецификации для страховки, подписывающей систему. Документ, как ожидали, доберется до 2 000 страниц или около этого. Много лет назад (приблизительно в 1992-1993) я также работал кратко наборным устройством.

Плотник разработан для технической документации и делает это очень хорошо действительно. Этому также разработали функции для поддержки очень больших документов с несколькими авторами - люди используют эту систему, чтобы сделать документы больше чем с 100 000 страниц. Это также более доступно, чем ЛАТЕКС для пользователей, знакомых с программным обеспечением обработки текста.

Основные характеристики Плотника:

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

  • Текстовые MIF форматируют для импорта/экспорта: средство импорта является несколько привередливым (я нашел, что генерация, работающая ЛАТЕКС, была легче), но можно генерировать объекты, такие как словари данных и импортировать их в документ. Файл имеет текстовые привязки (см. ниже), таким образом, можно создать ссылки перекрестной ссылки, которые будут стабильны через импорт. Я нахожу, что это основная характеристика для спецификаций, поскольку она позволяет перекрестным ссылкам связываться непосредственно со сгенерированными объектами.

  • Мощные метки, индексация и перекрестные ссылки на Систему: Все основано на тегах в Плотнике, и легко применить теги быстро. Это означает, что, перекрестно ссылаясь, индексируя, условный текст и применяя стили в массе легок и просто работы . Можно генерировать индексы и TOCs на основе тегов, также - несколько специализированных индексов (таких как список названий поля данных с экранов или словаря данных) легко сделать. Документ, который я описал выше, имел 4 отдельных индекса.

  • Стабильный: Плотник разработан для профессионалов, таким образом, это не делает второго предположения Вы в способе, которым делает слово. Это также намного более стабильно на больших документах. У любого, кого судят для записи документа больше чем 50-100 страниц на Word, должна быть довольно справедливая идея того, что это подразумевает.

  • Scriptable: FM имеет API C и существуют различные плагины сценариев ( FrameScript и FMPython, являющийся, вероятно, наиболее широко используемым), который может использоваться для автоматизации заданий в FM. Плотник 10 добавляет поддержку основанного на JavaScript инструмента сценариев, названного Extendscript, по-видимому, портированный напротив средства сценариев в InDesign.

  • Единственное определение источника: Из единственного документа FM можно произвести PDF, Windows Help (CHM), HTML и распечатать документы довольно легко. Перекрестные ссылки также решают к гиперссылкам.

  • средства управления Глобальным стилем: можно легко настроить стили для документа и применить его через целый документ. Это также упрощает под управлением заголовки и нижние колонтитулы с большой гибкостью в наличии их разделы дорожки, версии, главы и т.д.

Альтернативы Плотнику

  • ЛАТЕКС/МУЖЛАН: Вы уже указали, что не хотите разметку lanaguage, но TeX и Мужлан , системы используются для больших структурированных документов и делают это хорошо.

  • Издатель Ventura: , Вероятно, единственная реальная альтернатива Плотнику, если Вы хотите такой пользовательский интерфейс, не оплачивая физические части полномочие. Это имеет мощную поддержку структурированных документов и основанного на XML формата обмена документа. Это теперь принадлежит Corel, кто все еще, кажется, активно продвигает его.

    на рынке существует несколько других технических инструментов публикации: Quicksilver (который раньше был известен как Прокладочный лист ), и ArborText. Эти два являются мощными инструментами - Прокладочный лист раньше был лидером рынка в этом поле однажды - но довольно дорогой.

  • Adobe Indesign: , Хотя требование Adobe можно сделать, большие документы с InDesign, перекрестными ссылками и другими большими функциями документа имеют тенденцию просматриваться как недостаток поклонниками Плотника. Существует, однако, система ввода текста для него звонила InCopy, который, по-видимому, имеет этот вид функциональности и вполне большого тела [1 113] Сторонние плагины , некоторые из которых действительно поддерживают метки и другие такие средства. InDesign также имеет API сценариев и интерпретатор JavaScript для выполнения сценариев.

    я не использовал InDesign, таким образом, я не могу действительно прокомментировать, как хорошо он работает на практике.

  • DocBook: Это - действительно просто стандартный формат для структурированных документов, но имеет большую экосистему инструментов, окружающих его для записи и рендеринга документов. Если Вы не захотите использовать ЛАТЕКС, то Вы, вероятно, не захотите использовать DocBook по подобным причинам. Как [1 115] Vinko Vrsalovic указывает (+1), , Эта ссылка переходит к сообщению StackOverflow от кого-то описывающего использование DocBook на практике. Я действительно никогда не использовал DocBook, и я сделал столько редактирований к этому сообщению, что это находится теперь в режиме Wiki, таким образом, кто-то знакомый с DocBook мог бы хотеть уточнить это.

  • программное обеспечение Обработки текста: Word имеет серьезные недостатки как технический инструмент публикации и не рекомендуется. OpenOffice несколько лучше структурировал функциональность документации, чем слово и может быть лучшим выбором, если политика или требование для использования .doc в качестве формата обмена документа устраняют лучшую альтернативу. Wordperfect также значительно лучше для documentation-in-the-large, чем слово и все еще представлен в нескольких вертикальных рынках, таких как легальные офисы.

  • Сумасбродное программное обеспечение Пламя и Вспышка : Это новенькие и живой примерно в том же пространстве как Плотник. Компания была основана прежним щенком (создатели RoboHelp) сотрудники и активно разрабатывает с несколькими выпусками ежегодно. Их предложения значительно расширились за прошлые два года, в ущерб качеству отдельных продуктов. Кажется, что фокус шел, оказываясь новыми продуктами и последствием существует много проблем "качества сборки и отделки" в каждом. Авторы приняли решение перестроить колесо во многих отношениях, приведя к путанию и часто повреждали реализации. Сохраняйте часто, Вы встретитесь с необработанными исключениями. Интеграция управления исходным кодом облуплена. Например, перемещение или удаление группы файлов приведут к одной фиксации управления исходным кодом для каждого удаления файла. Большой ЛАВАШ, когда у Вас есть уведомления по электронной почте управления исходным кодом. Привет 500 электронных писем. Вспышка может импортировать Word и файлы Плотника, но импорт является совсем не бесшовным. Ожидайте сохранять все свое содержание, но план по завершенной модернизации с нуля. Вспышка совместно использует многие тенденции Word сделать слишком много негласно и принять то, что выбрал бы пользователь. HTML похож на то, какие выводы Word при экспорте HTML - много пользовательских тегов и атрибутов, глубоко вложенных встроенных стилей, и т.д. Текстовый редактор невыносим, например, его модель курсора отличается, чем какое-либо другое программное обеспечение, которое Вы когда-либо использовали.

Плотник по сравнению с Латексом

Эти два являются основными системами, я раньше представлял большие, презентабельные системные документы, и у меня были хорошие результаты с обоими.

  • Простота Изучения: TeX может дать Вам неограниченный контроль, но на самом деле достигающий этого на сложном ЛАТЕКСНОМ документе, не повреждая другие объекты не тривиально, особенно где большое количество макро-пакетов включено. Основной ЛАТЕКС не трудно изучить, но создание измененных версий .sty файлов, которые все еще работают, берет немного лужения, если Вы не действительно глубокий хакер TeX. Это может быть сделано, но подготовлено проводить довольно много времени, играя.

    Плотник может дать Вам хороший уровень контроля на виде документа и не является этим трудно для изучения. Получение стиля дома и тонкая настройка расположения (который, вероятно, необходимо будет сделать) будут легче с Плотником.

  • Простота Ввода текста: можно использовать инструменты такой в качестве [1 123] Lyx для обеспечения подобного текстовому процессору фронтэнда для Пропитки латексом, и они работают хорошо, если Вы хотите записать большие тела текста. Подобный DTP пользовательский интерфейс плотника работает в некотором роде знакомый людям, которые привыкли к программному обеспечению обработки текстов. С этой точки зрения существует мало практического различия.

  • Структура Документа Шаблонной обработки: Плотник позволяет структуре документа быть определенной с точки зрения тегов или XML-схемы (если использование Структурированный Плотник). ЛАТЕКС имеет ряд консервированных структурных элементов, которые достаточно гибки, чтобы быть полезными. Добавление дополнительных структурных элементов (например, объект словаря данных) может быть сделано как макрос, но то, чтобы заставлять их автоматически пронумеровать немного более сложно, и необходимо будет ввести по абсолютному адресу вокруг негласно. Оба делает это, но это значительно более техническое, чтобы делать это в ЛАТЕКСЕ в чем-либо кроме тривиальных случаев.

    кроме того, ЛАТЕКС имеет средства, чтобы обрабатывать структуру документа по шаблону в способе, которым делает Структурированный Плотник. Однако Вы достигает этого типа эффекта с DocBook и затем генерирует, чтобы ПРОПИТЫВАТЬ ЛАТЕКСОМ при желании.

  • Простота Интеграции: я находимый, что создание генератора для нетривиально сложных файлов MIF довольно трудное. Синтаксический анализатор MIF довольно привередливый в FM и действительно дает хорошую диагностику. ЛАТЕКС производит намного лучшие сообщения об ошибках и вполне немного менее суетливый.

Technical Publishing Software по сравнению с Программным обеспечением проектирования

Настольные издательские системы, запущенные с [1 124], Pagemaker и другие основные плееры в этом пространстве был своим конкурентом кварк Xpess и теперь InDesign, которым Adobe по существу попытавшийся удерживать от использования и заменять его и Плотник. Scribus, который Вы упоминаемые прежде, жизни в том же пространстве как эти продукты.

, Если бы Вы производящие руководство с меньше, чем (говорить) 50-100 страниц, один из пакетов, вероятно, делает соответствующее задание. Они действительно разрабатываемые для рекламы и тяжелых расположением задач публикации, таких как журналы, таким образом, их поддержка функций большого документа вида, найденного в Плотнике, справедливо ограничиваемая. Ключевой вопрос с этими продуктами масштабируемостью - они работает хорошо над большими документами.

Только для ссылки я на самом деле набирает книгу на 200 страниц (чья-то автобиография) использование Pagemaker. В то время как мелкомодульный кернинг и продвижение управления помогает немного для автоподгонки, это быть все еще очень ручной процесс, чтобы размечать измеренный документ книги. В этом случае книга была просто прямым текстом без значительных перекрестных ссылок или структуры кроме глав. При выполнении сложного технического документа спецификации или руководства этот размер с Pagemaker очень трудный и вероятно почти невозможный, чтобы разбирающийся без любых ошибок.

Technical Publishing по сравнению с Word Processing Software

Это большим количеством описания ключевых недостатков MSWord для больших документов спецификации. Однако это иллюстрирует некоторые основные функции, требуемые для documentation-in-the-large:

  • Индексация и Перекрестные ссылки: Это реальной тяжелой работой в Word, и довольно нестабильный. Функции меток плотника и маркировки Латекса означает, что Вы присваивает тег или известную маркировку (в предсказуемом формате при необходимости). Текстовый формат для привязок к тегу представляемый в пользовательском интерфейсе и использует для связи. В Word привязки намного более непрозрачные и не были легко управляемы таким образом. Объединенный с неуклюжим пользовательским интерфейсом и нестабильностью продукта, это сделало поддержание их трудным, и часто нестабильным - Вы часто были вручную согласованы их.

  • Шаблонные Разметки: поддержка Стиля в слове является довольно основной, и нумерация имела тенденцию несколько нестабильна. FrameMaker был всем об управлении от тегов и применении стилей на основе тегов. Изменения глобального стиля просто работать в Плотнике способом, что они не делают в Word.

  • Большие многофайловые Документы: я никогда не быть в состоянии эта работа хорошо в Word, но это основная характеристика в Плотнике и ЛАТЕКСЕ. Снова, нестабильность Word можно означать, что Вы можете быть склонны проводите много времени, убравшись после нее. Поскольку документ вырос, пропорция времени, проведенного на этой работе, вырасти квадратично - склонность к поломке, пропорциональной [1 142] n (размер документа) * время для фиксации пропорциональный размеру n (время для фиксации)

  • , Почему Word, настолько Нестабильный: Word сделать много негласно, чтобы поддерживал неопытных пользователей и вмешивается в разметки. Это также не действительно основано на кадре (текстовый поток концептуально можно отделиться от макета документа), но разработчики попытаются реализуют различные подобные кадру поведения в UI. Когда A.I. пересматривать Вас на составном документе, он часто делает неправильную вещь. Плотник 'рассматривать пользователя как взрослого' и не является ни одним из этого так, вещи остаются, куда Вы - они.

    Другие текстовые процессоры те, которые Открыть Office и WordPerfect, не неправильно себя ведут вполне тем же способом как Word, который одной из причин, что примерно любой текстовой процессор кроме Word является лучшим заданием технических документов.

  • Pre-Flighting: В документации - говорит, это будучи процессом проверки, что Ваша совокупность файлов для документа (файлы изображений и т.д.) быть корректна прежде, чем передав печати. Профессиональные системы на вещи, которые были неправильными, дав Вам шанс исправили его. Word просто сделан счастливый вид и не пытается чинит вещи негласно.

    А хорошим примером этого является файл слова со связанной графикой. Если Вы копируете файл и графику к другому каталогу и обновляете одну из графики на месте, слово все еще считать файл из старого пути (я должен видеть, что он существует это), а не новый, который Вы только что обновляете. Однако это поведение последовательно и символизировать необузданное злоупотребление нестабильной эвристикой в том продукте.

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

, не став слишком далеким в это, основное отличие не то, что публикация программного обеспечения имеется тенденцию рассматривает Вас как соглашающийся взрослый и не мешает, когда Вы не хотя масштабируете или автоматизируете вещи. Один могут программное обеспечение обработки текста использования для крупномасштабной документации, но это имеет много проектных решений, адаптированных к обычным пользователям, пишущим короткие документы невзирая на качество. Эта адаптация происходит за счет фитнеса для задачи в крупномасштабную работу подготовки документа. Основные вопросы, которые я существую с Word для документов спецификации, были плохой индексацией и перекрестными ссылками и общими проблемами нестабильности, куда я всегда возвращался и являюсь вещами. Однако политические соображения в большинстве сред (я был подрядчиком) означать, что каждый часто застревал с ним.

Некоторые замечания общего порядка о состоянии программного обеспечения технической документации

Плотник можно было бы быть очевидным выбором, если бы Adobe не продолжает испускаться сигналы, что они существуют удержали от использования его и перемещают его базу пользователей в InDesign. Однако FM широко использует в космосе, программном обеспечении и механизмекруги eering и управление Adobe стояли бы , линчуют моб. если они на самом деле EOL'd продукт без вероятного миграционного пути. Из того, что каждый читает в сети, приобретение Adobe FM управлялось John Warnock, но он был выгнан, и FM стал жертвой офисной политики. Конечный результат состоит в том, что это было перемещено в режим техобслуживания и довольно неподвижно.

Издатель Ventura был также понижен на специализированный рынок в некоторой степени, но по крайней мере Corel не имеет двух строк конкурирующего продукта в способе, которым Adobe делают. Это - вероятно, проходимая замена для FM и может быть более политически приемлемо для типов PHB, поскольку это продано как 'бизнес, публикующий' систему.

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

системы языка разметки свободны и очень мощны во многих отношениях. Мужлан мог бы быть немного легче работать с тем, поскольку это не имеет вполне уровня багажа прежней версии, который делает ЛАТЕКС. DocBook также вполне широко используется и действительно имеет довольно мало поддержки инструмента. Эти технологии помещают значительное сжатие на конец 'фаната' доли рынка Плотника и делают так на их достоинствах - они, вероятно, взяли настоящий блок из маржи прибыли Adobe за эти годы. Я не отклонил бы эти технологии без обсуждения, но их будет более трудно изучить на практике.

Вы могли бы попытаться оценить InDesign и выбранный набор плагинов (концентрат на тех для меток и cross-ref/index управления). Наконец, часть программного обеспечения обработки текста (Wordperfect и OpenOffice) дает Вам разумный инструментарий для структурированной документации и работает значительно лучше на это, чем MSWord.

PostScript

Да, который является игрой слов. Я не затронул Предпечатную функциональность ни одного из этих продуктов. Печать и Предпечатная подготовка является техническими полями самостоятельно, и объем для дорогих ошибок означает, что необходимо, вероятно, оставить это до специалистов. Плотник, InDesign, Ventura, QuickSilver, Arbortext и (по-видимому) продукты MadCap все идут со средствами, чтобы сделать предпечатную подготовку. В общем и целом программное обеспечение обработки текста не делает.

Выполнение предпечатной подготовки с ЛАТЕКСОМ имеет тенденцию связать последующую обработку вывода PS с программным обеспечением как [1 128] psutils или рендеринг к PDF и взятие предпечатного рабочего процесса оттуда. Обычно большинство предпечатных зданий может работать от PDF, таким образом, хороший инструмент записи PDF как Производитель алкогольной продукции является лучшим интерфейсом для работы, подготовленной из инструментов, которые не разработаны для предпечатной работы. Обратите внимание, что качество вывода от [1 129] Производитель алкогольной продукции склонен быть лучше, чем , Ghostscript основывал как [1 131] PDFCreator.

Примечание, что цветовое пространство RGB монитора не имеет прямой карты к цветовому пространству CYMK используемой печатным станком. На самом деле заставляя цвета - особенно цветные фотографии - выходить правильно на нажатии являются несколько удручающими, если у Вас нет правильного набора. Для производства печати посмотрите специалиста, если у Вас нет причины полагать, что Вы знаете то, что Вы делаете. Для обычного пользователя я все еще рекомендовал бы это спустя 15 лет после того, как я был вовлечен в промышленность, поскольку ошибки очень дороги для фиксации, как только они посвящают себя печати.

, Если Вы действительно хотите сделать цветную внутреннюю работу печати, Вам, вероятно, будет нужно к [1 132], калибруют Ваш монитор. Для лучших результатов необходимо получить высокочастотный монитор как [1 133] этот от HP. Для калибровки монитора, Вам, возможно, также понадобится датчик как один из тех описанных в [1 134] этот обзор , если монитор не идет с тем. Большинство профессиональных видеокарт как они от [1 135] Nvidia, AMD или Matrox имеют средства для поддержки гамма-коррекции; много потребительских делают также. Необходимо будет также получить калибровочные данные для нажатия, которое Вы собираетесь быть использованием для печати, хотя предпечатный дом, вероятно, будет в состоянии сделать это.

, Как указано прежде, печатные СМИ являются довольно техническими самостоятельно, легкими понять превратно и дорогой для фиксации, как только это перешло к печати. Если Вы не на 100% уверены, что имеете свое калибровочное право, получаете цветной отпечаток как Chromalin. Это сделано от фактических пленочных разделений (и является таким образом довольно дорогим), таким образом, это дает точное представление фактического цвета распечатанной статьи финала. Выполнение этого для нескольких демонстрационных страниц даст Вам точную обратную связь о том, настраивается ли Ваша калибровка право.

Подтверждения: Благодаря [1 139] Aidan Ryan для расширения раздела по Сумасбродным продуктам.

5
задан Schof 2 October 2009 в 23:23
поделиться

5 ответов

Если это действительно проблема с ресурсами (освобождение ресурсов сокета ОС)

, попробуйте следующее:

request = urllib2.Request(file_remote_path)
opener = urllib2.build_opener()

retry = 3 # 3 tries
while retry :
    try :
        datastream = opener.open(request)
    except urllib2.URLError, ue:
        if ue.reason.find('10048') > -1 :
            if retry :
                retry -= 1
            else :
                raise urllib2.URLError("Address already in use / retries exhausted")
        else :
            retry = 0
    if datastream :
        retry = 0

outfileobj = open(temp_file_path, 'wb')
try:
    while True:
        chunk = datastream.read(CHUNK_SIZE)
        if chunk == '':
            break
        else:
            outfileobj.write(chunk)
finally:
    outfileobj = outfileobj.close()
    datastream.close()

если хотите, вы можете вставить режим сна или сделать его зависимым

от ОС мой win-xp проблема не проявляется (я достиг 5000 загрузок)

Я наблюдаю за своими процессами и сетью с помощью хакера процессов .

5
ответ дан 14 December 2019 в 01:12
поделиться

Thinking outside the box, the problem you seem to be trying to solve has already been solved by a program called rsync. You might look for a Windows implementation and see if it meets your needs.

1
ответ дан 14 December 2019 в 01:12
поделиться

Вам следует серьезно подумать о копировании и изменении этого примера pyCurl для эффективной загрузки большой коллекции файлов.

1
ответ дан 14 December 2019 в 01:12
поделиться

Вместо открытия нового TCP-соединения для каждого запроса вы действительно должны использовать постоянные HTTP-соединения - взгляните на urlgrabber (или, альтернативно, просто на keepalive. py , как добавить поддержку соединения keep-alive в urllib2).

1
ответ дан 14 December 2019 в 01:12
поделиться

Все признаки указывают на отсутствие доступных розеток. Вы уверены, что только 6 из них находятся в состоянии TIME_WAIT? Если вы выполняете так много операций загрузки, очень вероятно, что netstat переполняет буфер вашего терминала. Я обнаружил, что netstat stat переполняет мой терминал во время нормального использования.

Решение состоит в том, чтобы либо изменить код для повторного использования сокетов. Или ввести тайм-аут. Также не помешало бы отслеживать, сколько у вас открытых сокетов. Чтобы оптимизировать ожидание. Тайм-аут по умолчанию в Windows XP составляет 120 секунд. поэтому вы хотите спать по крайней мере так долго, если у вас закончились сокеты. К сожалению, не похоже, что существует простой способ проверить с помощью Python, когда сокет закрылся и вышел из состояния TIME_WAIT.

Учитывая асинхронный характер запросов и тайм-аутов, лучший способ сделать это - в ветке. Заставьте каждую угрозу спать на 2 минуты, прежде чем она закончится. Вы можете использовать семафор или ограничить количество активных потоков, чтобы гарантировать, что у вас не закончатся сокеты.

Вот как я с этим справлюсь. Возможно, вы захотите добавить условие исключения во внутренний блок try раздела выборки, чтобы предупредить вас о неудачных выборках.

import time
import threading
import Queue

# assumes url_queue is a Queue object populated with tuples in the form of(url_to_fetch, temp_file)
# also assumes that TotalUrls is the size of the queue before any threads are started.


class urlfetcher(threading.Thread)
    def __init__ (self, queue)
        Thread.__init__(self)
        self.queue = queue


    def run(self)
        try: # needed to handle empty exception raised by an empty queue.
            file_remote_path, temp_file_path = self.queue.get()
            request = urllib2.Request(file_remote_path)
            opener = urllib2.build_opener()
            datastream = opener.open(request)
            outfileobj = open(temp_file_path, 'wb')
            try:
                while True:
                    chunk = datastream.read(CHUNK_SIZE)
                    if chunk == '':
                        break
                    else:
                        outfileobj.write(chunk)
            finally:
                outfileobj = outfileobj.close()
                datastream.close()    
                time.sleep(120)
                self.queue.task_done()

elsewhere:


while url_queue.size() < TotalUrls: # hard limit of available ports.
    if threading.active_threads() < 3975: # Hard limit of available ports
         t = urlFetcher(url_queue)
         t.start()
    else: 
        time.sleep(2)

url_queue.join()

Извините, мой питон немного ржавый, поэтому я не удивлюсь, если что-то пропустил.

1
ответ дан 14 December 2019 в 01:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: