Ответ 1
Я думаю, что один из способов обойти это можно с помощью
pip download
Смотрите docs здесь. Вы можете изменить имя пакета после его загрузки, а затем вручную установить его. Я не тестировал это, но похоже, что он должен работать.
При установке нового пакета python с PIP можно изменить имя пакета, потому что есть другой пакет с тем же именем?
Или, как я могу изменить существующее имя пакета?
Я думаю, что один из способов обойти это можно с помощью
pip download
Смотрите docs здесь. Вы можете изменить имя пакета после его загрузки, а затем вручную установить его. Я не тестировал это, но похоже, что он должен работать.
Если вы пытаетесь установить правильный пакет при использовании pip install 'module', вы всегда можете скачать соответствующий ему файл wheel (расширение .whl), а затем установить его напрямую, используя pip. Это работало для меня в различных ситуациях в прошлом.
Используйте virtualenv, если вам не нужны оба пакета для одного проекта. С virtualenv вы также можете иметь разные версии пакетов.
Другой способ, может быть, как уже упоминалось, пакеты сайта.
https://virtualenv.pypa.io/en/stable/
http://docs.python-guide.org/en/latest/dev/virtualenvs/#lower-level-virtualenv
Создайте новый virtualenv, а затем установите пакет на новом virtualenv, с этим вы можете иметь разные версии пакетов.
У меня была эта проблема с библиотеками gmail и pygmail, они оба хотят установить в site-packages/gmail/. Очевидно, что у пакета pygmail есть проблема, его следует устанавливать в папку pygmail, но они не производили никаких обновлений в течение многих лет.
Для временного решения я установил один, затем изменил имена папок, затем установил второй. Кажется, работает, пока я не пытаюсь обновить первый пакет.
Невозможно изменить "путь импорта" (установленное имя), указав аргументы для pip. Все остальные параметры требуют некоторой формы "изменений в пакете":
A. Используйте pip install -e git+http://some_url#egg=some-name
: таким образом, даже если оба пакета имеют одинаковый путь импорта, они будут сохранены в разных каталогах (используя some-name
#egg=
после #egg=
) После этого вы можете перейти к исходным каталогам пакетов (обычно venv/src/some-name
) и переименовать некоторые папки, чтобы изменить пути импорта.
ДО НАШЕЙ ЭРЫ. Разветките репозиторий, внесите изменения, затем установите пакет из этого репозитория. Или вы можете опубликовать свой пакет в PyPI под другим именем и установить его по имени
D. используйте pip download
чтобы поместить один из пакетов в ваш проект, затем переименуйте папки, как вам нравится.
Я не думаю, что можно изменить имя пакета с помощью pip. Поскольку pip может устанавливать пакеты, которые существуют, и дает ошибку, если нет имени пакета, которое вы пишете для изменения имени пакета.
Я предполагаю, что по крайней мере один из пакетов, на которые вы ссылаетесь, не установлен с https://pypi.org/, поскольку они обеспечивают уникальные имена для пакетов; это означает, что вы устанавливаете этот пакет из исходного кода, что означает, что вы также можете свободно менять его имя на любое другое. Это можно сделать, изменив файл setup.py
в корне пакета-нарушителя.
Я думаю, это зависит, если вам нужно обновить любой из них. Если вы этого не сделаете, вы можете перейти в свою папку site-packages
и переименовать папку
Это невозможно с помощью инструмента командной строки pip
. Все пакеты на PyPI имеют уникальные имена. Пакеты часто требуют и зависят друг от друга, и предполагается, что имя не изменится.