Как скопировать вручную только один пакет сайта без установки pip? - PullRequest
1 голос
/ 29 октября 2019

Во-первых, мои причины сделать это - я знаю, что это плохая идея, но у меня нет идей.

Я хочу установить пакет, для которого требуется версия ld, которая выше, чем версияв репо моего Centos 6.5. Так что я должен либо заняться настройкой всего в Docker и запустить его в производство - что-то, с чем мне не хватает опыта, и я не чувствую себя комфортно для серьезного проекта. Или обновите ld сборку вручную из внешнего источника. То, что я прочитал, может привести к опустошению моего Centos. Поэтому последний вариант, который мне остается, это установить упакованный файл на другой компьютер и вручную скопировать его на site-packages.

. Я успешно установил пакет на своем домашнем ноутбуке в Debian.

Я везде встречал совет скопировать весь каталог site-packages. Что-то, что я не хочу делать, так как у меня разные пакеты на обеих машинах, и я хочу избежать путаницы с другими вещами.

Я скопировал сборку .so и .egginfo пакета. Затем на целевой машине pip freeze действительно показал мне переданный пакет. Однако Python не может найти его, когда я пытаюсь импортировать и использовать его.

Я что-то упустил?

1 Ответ

1 голос
/ 29 октября 2019

Ничего подобного.

Не связывайтесь с системным каталогом site-пакетов Python, он относится только к системному окружению Python. Вы должны только добавлять / удалять код, используя менеджер пакетов вашей ОС (это yum для CentOS). Это особенно верно в Linux, где многие службы ОС могут полагаться на систему Python.

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

...