Разница между пунктами установки. и установить pip -e - PullRequest
0 голосов
/ 11 марта 2020

Я создал пакет в python, и теперь я хотел бы установить его как обычный пакет. В чем разница между использованием pip3 install . и pip3 install -e .?

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

1 Ответ

1 голос
/ 11 марта 2020

Флаг -e указывает pip для установки в редактируемом режиме:

-e,--editable <path/url>
    Install a project in editable mode (i.e. setuptools "develop mode") from a local project path or a VCS url.

https://manpages.debian.org/stretch/python-pip/pip.1

Итак, что такое редактируемый режим или setuptools "режим разработки «?

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

Команда разработки работает путем создания файл .egg-link (названный для проекта) в данной промежуточной области. Если промежуточной областью является каталог сайтов-пакетов Python, он также обновляет файл easy-install.pth, чтобы проект по умолчанию находился в sys.path для всех программ, запускаемых с использованием этой установки Python.

Команда Develop также устанавливает сценарии оболочки в промежуточной области (или в отдельном каталоге, как указано), что обеспечит доступность зависимостей проекта в sys.path перед запуском исходных сценариев проекта. Кроме того, он обеспечивает доступ к отсутствующим зависимостям проекта в области подготовки, загружая и устанавливая их при необходимости.

Наконец, но не в последнюю очередь, команда Develop вызывает команду build_ext -i, чтобы обеспечить любые C расширения в проекте были созданы и обновлены, а команда egg_info обеспечивает обновление метаданных проекта (чтобы среда выполнения и упаковщики знали, каковы зависимости проекта). Если вы вносите какие-либо изменения в сценарий установки проекта или расширения C, вам следует повторно запустить команду развертки для всех соответствующих областей подготовки, чтобы поддерживать актуальность сценариев, метаданных и расширений проекта.

или, tldr;

Разверните ваш проект в «режиме разработки», чтобы он был доступен в sys.path, но при этом его можно было редактировать непосредственно из исходной проверки.

https://setuptools.readthedocs.io/en/latest/setuptools.html#develop -Развертывание-The-проект-источник-в-разработки режима

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...