Лучшая практика установки не загрязняющих пакетов pip без использования виртуальных сред - PullRequest
0 голосов
/ 16 января 2020

Это может быть лишним вопросом. Но мне нравится устанавливать pip-пакеты в sys.path, владельцем которого я являюсь.

Чтобы сделать это, мне пришлось сделать некрасивый хак на Windows, чтобы найти, какие папки у меня есть, из списка sys.path. Было бы замечательно, если бы существовало подмножество sys.path, которым владел пользователь, например sys.owned_path, но это, вероятно, не так по причине, которую я не знаю. И мне бы очень хотелось, чтобы pathlib.Path (). Owner () был реализован на windows.

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

app.exe python -m pip install package -t C:\a\clean\folder\in\sys\path\owned\by\the\user 

, но это приложение также может работать на Linux с другим именем, поэтому оно должно быть независимым от платформы:

appengine python -m pip install package -t /a/clean/unix/path/owned/by/the/user

Вкл. Windows Мне пришлось использовать подпроцесс для запуска команды dir, чтобы получить владельца пути, который должен быть быстрее для входа на более низкий уровень, чтобы получить этот результат?

Извините за сломанные вопросы.

1 Ответ

2 голосов
/ 16 января 2020

Вы можете установить пакеты в определенное местоположение пользователя c, используя параметр --user:

pip install <package-name> --user

Вместо некоторого расположения в системе, например, на linux /usr/lib/python3.6, pip установит пакеты к местоположению, указанному c для пользователя, например, ~/.local/lib/python3.6.

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