2009-05-25 4 views
1

Можно создать дубликат:
Gather all Python modules used into one folder?Соберите все модули Python, используемые в одной папке?

Я не думаю, что это было предложено до-у меня есть папка, которая имеет множество различных файлов .py. Сценарий, который я сделал, использует только некоторые, но некоторые вызовы других & Я не знаю всех используемых. Есть ли программа, которая получит все необходимое, чтобы этот скрипт работал в одной папке?

Cheers!

+0

Dupe: http://stackoverflow.com/questions/907660/gather-all-python-modules-used-into-one-folder – Dave

+0

Пожалуйста, не отправляйте тот же вопрос дважды. –

ответ

1

Поскольку Python не является статически связанным языком, эта задача была бы довольно сложной задачей. Особенно, если в вашем коде используется eval(...) или exec(...).

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

У вас есть несколько сценариев, подобных этому, тогда эта ручная работа на самом деле не способ. Но в этом случае наличие большого количества разных .py-файлов в каталоге не является хорошей технологией развертывания, и вы должны подумать о том, чтобы упаковать их в модули installable и установить в свои пакеты-сайты python.

Все еще вы можете использовать snakefood package, чтобы найти наши зависимости (уже обсуждалось here). Опять же, он просто не может быть на 100% точным, но должен дать вам легкий старт.

0

Я хотел бы попробовать 2½ решения, один сложный и 1½ быстрый и грязный:

  • сложный: пользовательский импорт крюк, фиксируя все импорт
  • быстрый и грязный, часть а: os.utime * .py [со]? (re нотация, а не glob) файлы, имеющие время доступа вчера, а затем запустить программу и собрать все последние временные данные. Предварительное условие: файловая система, которая отмечает время доступа (сама по себе и ее параметры монтирования).
  • быстро и грязно, часть b: удалить все * .py [co] файлы (то же самое в glob и re), запустите программу, посмотрите, какие из них были созданы. Предварительное условие: пользователь должен иметь доступ к записи в папку.
1

вы должны быть в состоянии извлечь необходимую информацию из так называемой граф вызовов

Смотрите, например

Кроме того, py2exe преобразует ap ython вызывает в исполняемый файл, и в этом процессе он собирает все используемые модули. Я думаю, py2exe является кросс-платформой

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