Импорт всей стандартной библиотеки Python - PullRequest
4 голосов
/ 30 июля 2009

Мне нужен способ импортировать всю стандартную библиотеку Python в мою программу.

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

Есть ли простой способ сделать это?

Бонусные баллы: я бы предпочел, чтобы это действие НЕ импортировало пакеты, которые я установил в пакетах сайта и которые не поставлялись с Python. Однако это не критично.

Ответы [ 2 ]

2 голосов
/ 30 июля 2009

Эй, я просто кое-что подумал: мне нужен только список всех модулей в stdlib, а затем я автоматически сгенерирую скрипт Python, который импортирует каждый из них «вручную», например:

import re
import math
import time
# ...

А затем включите это в мою программу.

Итак, все, что мне сейчас нужно, это легко отформатированный список всех модулей / пакетов в stdlib. Теперь, как мне это получить?

UPDATE:

Я получил такой список: я установил Python 2.6 на виртуальную машину, затем запустил IDLE:

import pkgutil
stuff = [thing[1] for thing in pkgutil.iter_modules()]
stuff.sort() # To make it easy to look through
print(stuff)

Затем copy вставил вывод в мою IDE и сделал небольшой скрипт для записи:

if False:
    import re
    import email
    import time
    # ...

В модуль Python, который я импортирую в свою программу.

Это работает! py2exe упаковывает весь stdlib.

UPDATE:

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

http://github.com/cool-RR/PythonTurtle/tree/master

Он находится в папке src, пакет называется almostimportstdlib и задокументирован.

1 голос
/ 30 июля 2009

Я создал zip-файл из всей стандартной библиотеки Python, а затем добавил его в sys.path при запуске программы.

Вы можете посмотреть на источники здесь (заброшенный проект)

...