Необходимость в файлах заголовков возникает из-за ограничений, которые компилятор знает для информации о типе для функций и / или переменных в других модулях. Скомпилированная программа или библиотека не включает информацию о типе, необходимую компилятору для привязки к любым объектам, определенным в других единицах компиляции.
Чтобы компенсировать это ограничение, C и C ++ допускают объявления и эти объявления могут быть включены в модули, которые используют их с помощью директивы #include препроцессора.
Языки, такие как Java или C #, с другой стороны, включают информацию, необходимую для привязки к выходу компилятора (класс-файл или сборка ). Следовательно, больше нет необходимости поддерживать автономные декларации, которые должны быть включены клиентами модуля.
Причина того, что информация привязки, не включаемая в вывод компилятора, проста: она не нужна во время выполнения (проверка любого типа происходит во время компиляции). Это просто потеряло бы пространство. Помните, что C / C ++ происходит с того момента, когда размер исполняемого файла или библиотеки имеет значение совсем немного.
Как говорит Винай, есть некоторые части общих установок, которые нельзя просто скопировать. Кроме того, имейте в виду, что скрипты setup.py могут выполнять произвольную работу, например, они могут тестировать версию Python и изменять, как они устанавливают вещи, или могут записывать записи в реестре или создавать файлы .rc и т. Д. [ ! d0]
Я согласен: переустановите пакеты.
Кроме того, еще одно преимущество для повторной установки: если вы только что закончили, просто потеряете первый раз, когда что-то таинственным образом не сработает, и вы попытаетесь его отладить. сделайте это, когда вам нужен пакет, тогда вы не потрудитесь переустановить пакеты, которые вам больше не нужны.
Используйте Portable Python , тогда вы можете иметь все на своем USB-накопителе. Вся ваша среда разработки всегда находится в вашем кармане, просто подключите ее к ЛЮБОЙ ПК и начните кодирование.
Вы даже можете иметь несколько версий Portable Python на одном USB-накопителе и запускать их бок о бок, что помогает, если вы например заняты переходом на Python 3. * или просто хотят экспериментировать.
Если они чистые Python, то в теории вы можете просто скопировать их из одного каталога Lib \ site-packages
в другой. Однако это не будет работать для каких-либо пакетов, которые включают расширения C (так как их необходимо перекомпилировать заново для каждой версии Python). Вам также необходимо рассмотреть, например. .pth
файлы, которые были созданы пакетами установки, удаление ранее существовавших файлов .pyc
и т. д.
Я бы посоветовал просто переустановить пакеты .
easy_install
, ваш полный список может быть простым сценарием easy_install
.
– S.Lott
22 August 2009 в 12:26